Advertisement
Guest User

Untitled

a guest
Jul 17th, 2019
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.23 KB | None | 0 0
  1. // CALCULATOR
  2. function GenerateCalc($params = array()) {
  3.    
  4.     //init ionrangeslider
  5.     wp_register_script('ionRangeSlider', '//cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.0/js/ion.rangeSlider.min.js',  array(), '1' );
  6.     wp_enqueue_script( 'ionRangeSlider' );
  7.     wp_enqueue_style( 'ionrangeslider', '//cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.0/css/ion.rangeSlider.min.css');
  8.    
  9.     // default parameters
  10.     extract(shortcode_atts(array(
  11.         'titles'  => array(),
  12.         'values_p3' => array(),
  13.         'values_p4' => array(),
  14.         'max_ion' => "",
  15.         'ion_price' => array()
  16.     ), $params));  
  17.    
  18.     $titles     = explode(",", $titles);
  19.     $values_p3  = explode(",", $values_p3);
  20.     $values_p4  = explode(",", $values_p4);
  21.     $ion_price_load = explode(",", $ion_price);
  22.    
  23.     $calcHtml = "";
  24.    
  25.     //пластичность
  26.     $calcHtml_type = '<div class="calc_type_wrap">';
  27.         $calcHtml_type .= '<p class="calc_type_title">Пластичность</p>';
  28.         $calcHtml_type .= '<div class="calc_type_line">';
  29.             $calcHtml_type .= '<span class="calc_type_item active">П3</span><span class="calc_type_item">П4</span>';
  30.         $calcHtml_type .= '</div>';
  31.     $calcHtml_type .= '</div>';
  32.    
  33.     //марка
  34.     $calcHtml_brand = '<div class="calc_brand_wrap">';
  35.         $calcHtml_brand .= '<p class="calc_brand_title">Класс бетона (марка)</p>';
  36.         $calcHtml_brand .= '<div class="calc_brand_line">';
  37.             foreach ($titles as $key => $title) {
  38.                 if ($key == 0) $classActive = " active"; else $classActive = "";
  39.                 $calcHtml_brand .= '<span class="calc_brand_item'.$classActive.'" data-value_p3="'.$values_p3[$key].'" data-value_p4="'.$values_p4[$key].'">'.$title.'</span>';
  40.             }
  41.         $calcHtml_brand .= '</div>';
  42.     $calcHtml_brand .= '</div>';
  43.    
  44.     //объем
  45.     $calcHtml_count = '<div class="calc_count_wrap">';
  46.         $calcHtml_count .= '<p class="calc_count_title">Объём</p>';
  47.         $calcHtml_count .= '<div class="calc_count_form">';
  48.             $calcHtml_count .= '<span class="calc_count_form_button" data-action="minus">-</span>';
  49.             $calcHtml_count .= '<input type="text" class="calc_count_form_input" value="1">';
  50.             $calcHtml_count .= '<span class="calc_count_form_label">м<sup>3</sup></span>';
  51.             $calcHtml_count .= '<span class="calc_count_form_button" data-action="plus">+</span>';
  52.         $calcHtml_count .= '</div>';
  53.         $calcHtml_count .= '<div class="calc_count_text">';
  54.             $calcHtml_count .= '<span class="calc_count_text_one">Цена за 1м<sup>3</sup>: <span>'.$values_p3[0].'</span>.</span>';
  55.         $calcHtml_count .= '</div>';
  56.     $calcHtml_count .= '</div>';
  57.    
  58.     //марка
  59.     $calcHtml_ion = '<div class="calc_ion_wrap">';
  60.         $calcHtml_ion .= '<p class="calc_ion_title">Расстояние</p>';
  61.         $calcHtml_ion .= '<div class="calc_ion_init" max_ion="'.$max_ion.'" data_price="'.$ion_price.'">';
  62.             $calcHtml_ion .= '<input type="text" id="calc_ion_id" name="calc_ion_name" value="" />';
  63.         $calcHtml_ion .= '</div>';
  64.     $calcHtml_ion .= '</div>';
  65.    
  66.     //итого
  67.     $calcHtml_full = '<div class="calc_full">';
  68.         $calcHtml_full .= '<p class="calc_full_title"><span>Итого</span></p>';
  69.         $load_price = intval($values_p3[0])+intval($ion_price_load[0]);
  70.         $currency = preg_replace('/\d/', '', $values_p3[0]);
  71.         $calcHtml_full .= '<p class="calc_full_values">'.$load_price.$currency.'.</p>';
  72.     $calcHtml_full .= '</div>';
  73.    
  74.     //форма
  75.     $calcHtml_form = '<form action="#" class="calc_form" data-count="1" data-product="'.$titles[0].'" data-price="'.$values_p3[0].'">';
  76.         $calcHtml_form .= '<input type="text" class="calc_form_input form_phone" placeholder="Номер телефона">';
  77.         $calcHtml_form .= '<input type="text" class="calc_form_input form_address" placeholder="Адрес доставки">';
  78.         $calcHtml_form .= '<button type="submit" class="calc_form_button">Купить</button>';
  79.     $calcHtml_form .= '</form>';
  80.    
  81.     // генерация калькулятора
  82.     $calcHtml = $calcHtml_type.$calcHtml_brand.$calcHtml_count.$calcHtml_ion.$calcHtml_full.$calcHtml_form;
  83.  
  84.     return $calcHtml;
  85. }
  86. add_shortcode('calcPrice', 'GenerateCalc');
  87.  
  88. function ajax_form(){
  89.     $phone      = $_REQUEST['phone'];
  90.     $address    = $_REQUEST['address'];
  91.     $product    = $_REQUEST['product'];
  92.     $price      = $_REQUEST['price'];
  93.     $count      = $_REQUEST['count'];
  94.     $response = '';
  95.     $thm  = 'Заказ с калькулятора';
  96.     $thm  = "=?utf-8?b?". base64_encode($thm) ."?=";
  97.     $msg = "Телефон: ".$phone."<br/>";
  98.     if ($address != "") $msg .= "Адрес: ".$address ."<br/>";
  99.     $msg .= "Продукт: ".$product."<br/>
  100.         Цена: ".$price."<br/>
  101.         Количество: ".$count."<br/>";
  102.     $mail_to = "zloycoder@ya.ru";
  103.     $headers = "Content-Type: text/html; charset=utf-8\n";
  104.     $headers .= 'From: Komfort-Lv <roboto@komfort-lv.com.ua>' . "\r\n";
  105.  
  106.     // Отправляем почтовое сообщение
  107.  
  108.     if(mail($mail_to, $thm, $msg, $headers)){
  109.         $response = 'Сообщение отправлено';
  110.     }else
  111.         $response = 'Ошибка при отправке';
  112.  
  113. // Сообщение о результате отправки почты
  114.  
  115.     if ( defined( 'DOING_AJAX' ) && DOING_AJAX ){
  116.         echo $response;
  117.         wp_die();
  118.     }
  119. }
  120.  
  121. add_action('wp_ajax_nopriv_ajax_order', 'ajax_form' );
  122. add_action('wp_ajax_ajax_order', 'ajax_form' );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement