Plugin Directory

Changeset 2386956


Ignore:
Timestamp:
09/23/2020 09:32:14 AM (5 years ago)
Author:
smsfly
Message:

Update to version 1.1

Location:
smsfly
Files:
4 added
6 edited

Legend:

Unmodified
Added
Removed
  • smsfly/trunk/includes/functions.php

    r1617853 r2386956  
    11<?php
     2//Contact form 7
     3if ( get_option('SMSFLY_cf7_onsubmit') == '1') {
     4    function sendtest($contactform, $result) {
     5        $to = get_option('SMSFLY_cf7_phone');
     6        $search = array('{time}', '{name}', '{email}', '{subject}');
     7        $replace = array(date('Y-m-d H:i:s',time()),wpcf7_flamingo_get_value('name',$contactform),wpcf7_flamingo_get_value('email',$contactform),wpcf7_flamingo_get_value('subject',$contactform));
     8        $msg = str_replace($search,$replace,get_option('SMSFLY_cf7_onsubmit_msg'));
     9        $from = get_option('SMSFLY_name_cf7_send');
     10        $SF = new SmsFlyC(get_option('SMSFLY_LOGIN'), get_option('SMSFLY_PASSWORD'), $from);
     11        $setting = array(
     12            'SMSFLY_PHONE' => $to,
     13            'SMSFLY_TEXT' => $msg
     14        );
     15        $SF->sfSendSms($setting);
     16    }
     17    add_action( 'wpcf7_submit', 'sendtest', 10, 2 );
     18}
    219
    320// оповещение когда опубликован пост.
     
    154171//оповещение для администратора о новом заказе
    155172if ( get_option( 'SMSFLY_wc_admin_new_order' ) == '1' ) {
    156     function smsfly_new_order($order_id, $old_status, $new_status) {
     173    function smsfly_new_order($order_id, $old_status = '', $new_status = '') {
    157174        $order = new WC_Order($order_id);
    158175        $search = array('{NUM}', '{SUM}', '{EMAIL}', '{PHONE}', '{FIRSTNAME}', '{LASTNAME}', '{CITY}', '{ADDRESS}', '{BLOGNAME}', '{OLD_STATUS}', '{NEW_STATUS}');
     
    174191//оповещение для клиента о новом заказе
    175192if ( get_option( 'SMSFLY_wc_client_new_order' ) == '1' ) {
    176     function smsfly_new_order_client($order_id, $old_status, $new_status) {
     193    function smsfly_new_order_client($order_id, $old_status = '', $new_status = '') {
    177194        $order = new WC_Order($order_id);
    178195        $search = array('{NUM}', '{SUM}', '{EMAIL}', '{PHONE}', '{FIRSTNAME}', '{LASTNAME}', '{CITY}', '{ADDRESS}', '{BLOGNAME}', '{OLD_STATUS}', '{NEW_STATUS}');
     
    194211//оповещение для адмна о смене статуса заказа
    195212if ( get_option( 'SMSFLY_wc_admin_order_status' ) == '1' ) {
    196     function change_status_admin($order_id, $old_status, $new_status) {
    197         $order = new WC_Order($order_id);
     213    function change_status_admin($order_id, $old_status, $new_status, $that) {
     214        $order = new WC_Order($order_id);
     215        //Статус по умолчанию не обрабатываем
     216        if ($order->status === 'processing') {
     217            return true;
     218        }
     219        $search = array('{NUM}', '{SUM}', '{EMAIL}', '{PHONE}', '{FIRSTNAME}', '{LASTNAME}', '{CITY}', '{ADDRESS}', '{BLOGNAME}', '{OLD_STATUS}', '{NEW_STATUS}');
     220        $replace = array('№'.$order_id, html_entity_decode(strip_tags($order->get_formatted_order_total())), $order->billing_email, $order->billing_phone, $order->billing_first_name, $order->billing_last_name,
     221                $order->shipping_city, $order->shipping_address_1.' '.$order->shipping_address_2, get_option('blogname'), wc_get_order_status_name($old_status), wc_get_order_status_name($new_status));
     222        $sendphone = get_option('SMSFLY_wc_phone');
     223        $from = get_option('SMSFLY_name_wc_send');
     224        $msg = str_replace($search, $replace, get_option('SMSFLY_wc_admin_order_status_msg'));
     225        $SF = new SmsFlyC(get_option('SMSFLY_LOGIN'), get_option('SMSFLY_PASSWORD'), $from );
     226        $setting = array(
     227            'SMSFLY_PHONE' => $sendphone,
     228            'SMSFLY_TEXT' => $msg
     229        );
     230        $SF->sfSendSms($setting);
     231    }
     232    add_action('woocommerce_order_status_changed', 'change_status_admin', 10, 4);
     233}
     234
     235//оповещение для клиента о смене статуса заказа
     236if ( get_option( 'SMSFLY_wc_client_order_status' ) == '1' ) {
     237    function change_status_client($order_id, $old_status, $new_status, $that) {
     238        $order = new WC_Order($order_id);
     239        //Статус по умолчанию не обрабатываем
     240        if ($order->status === 'processing') {
     241            return true;
     242        }
    198243        $search = array('{NUM}', '{SUM}', '{EMAIL}', '{PHONE}', '{FIRSTNAME}', '{LASTNAME}', '{CITY}', '{ADDRESS}', '{BLOGNAME}', '{OLD_STATUS}', '{NEW_STATUS}');
    199244        $replace = array('№'.$order_id, html_entity_decode(strip_tags($order->get_formatted_order_total())), $order->billing_email, $order->billing_phone, $order->billing_first_name, $order->billing_last_name,
     
    201246        //$sendphone = get_option('SMSFLY_wc_phone');
    202247        $from = get_option('SMSFLY_name_wc_send');
    203         $msg = str_replace($search, $replace, get_option('SMSFLY_wc_admin_order_status_msg'));
     248        $msg = str_replace($search, $replace, get_option('SMSFLY_wc_client_order_status_msg'));
    204249        $SF = new SmsFlyC(get_option('SMSFLY_LOGIN'), get_option('SMSFLY_PASSWORD'), $from );
    205250        $setting = array(
     
    209254        $SF->sfSendSms($setting);
    210255    }
    211     add_action('woocommerce_order_status_changed', 'change_status_admin', 1, 3);
    212 }
    213 
    214 //оповещение для клиента о смене статуса заказа
    215 if ( get_option( 'SMSFLY_wc_client_order_status' ) == '1' ) {
    216     function change_status_client($order_id, $old_status, $new_status) {
    217         $order = new WC_Order($order_id);
    218         $search = array('{NUM}', '{SUM}', '{EMAIL}', '{PHONE}', '{FIRSTNAME}', '{LASTNAME}', '{CITY}', '{ADDRESS}', '{BLOGNAME}', '{OLD_STATUS}', '{NEW_STATUS}');
    219         $replace = array('№'.$order_id, html_entity_decode(strip_tags($order->get_formatted_order_total())), $order->billing_email, $order->billing_phone, $order->billing_first_name, $order->billing_last_name,
    220                 $order->shipping_city, $order->shipping_address_1.' '.$order->shipping_address_2, get_option('blogname'), wc_get_order_status_name($old_status), wc_get_order_status_name($new_status));
    221         //$sendphone = get_option('SMSFLY_wc_phone');
    222         $from = get_option('SMSFLY_name_wc_send');
    223         $msg = str_replace($search, $replace, get_option('SMSFLY_wc_client_order_status_msg'));
    224         $SF = new SmsFlyC(get_option('SMSFLY_LOGIN'), get_option('SMSFLY_PASSWORD'), $from );
    225         $setting = array(
    226             'SMSFLY_PHONE' => $order->billing_phone,
    227             'SMSFLY_TEXT' => $msg
    228         );
    229         $SF->sfSendSms($setting);
    230     }
    231     add_action('woocommerce_order_status_changed', 'change_status_client', 1, 3);
    232 }
     256    add_action('woocommerce_order_status_changed', 'change_status_client', 10, 4);
     257}
  • smsfly/trunk/includes/settings.php

    r1617853 r2386956  
    88    add_submenu_page('SMSFly_settings', 'SMS-Fly оповещения', 'Настройка оповещений', 'manage_options', 'SMSFly_notify', 'smsfly_site_options_page_show');
    99    add_submenu_page('SMSFly_settings', 'SMS-Fly и Woocommerce', 'SMS-Fly и Woocommerce', 'manage_options', 'SMSFly_woo', 'smsfly_checkwc');
     10    add_submenu_page('SMSFly_settings', 'SMS-Fly и Contact Form 7', 'SMS-Fly и Contact Form 7', 'manage_options', 'SMSFly_cf7', 'smsfly_checkcf7');
    1011    add_submenu_page('SMSFly_settings', 'SMS-Fly тестовое сообщение', 'Тестовое сообщение', 'manage_options', 'SMSFly_test', 'smsfly_test_show');
    1112
     
    1415    add_action( 'admin_init', 'smsfly_site_options_action' );
    1516    add_action( 'admin_init', 'smsfly_woo_options_action' );
     17    add_action( 'admin_init', 'smsfly_cf7_options_action' );
    1618}
    1719     
     
    125127    require_once( 'smsfly-wc-settings.php' );
    126128}
     129
     130function smsfly_cf7_options_action() {
     131    $wc_settings_wc_options = array(
     132        'SMSFLY_cf7_onsubmit',
     133        'SMSFLY_cf7_onsubmit_msg',
     134        'SMSFLY_cf7_phone',
     135        'SMSFLY_name_cf7_send'
     136    );
     137
     138    foreach ($wc_settings_wc_options as $value) {
     139        register_setting( 'smsfly_cf7_options_page_group', $value );
     140    }
     141
     142    require_once( 'smsfly-cf7-settings.php' );
     143}
  • smsfly/trunk/includes/smsfly-wc-settings.php

    r1617853 r2386956  
    3333                    <th scope="row"><label for="SMSFLY_wc_phone">Телефон администратора </label></th>
    3434                    <td>
    35                         <input name="SMSFLY_wc_phone" type="text" id="SMSFLY_wc_phone" value="<?php echo get_option('SMSFLY_wc_phone'); ?>" placeholder="79999999999" class="regular-text">
     35                        <input name="SMSFLY_wc_phone" type="text" id="SMSFLY_wc_phone" value="<?php echo get_option('SMSFLY_wc_phone'); ?>" placeholder="380XXXYYYYYYY" class="regular-text">
    3636                    </td>
    3737                    <td><p class="description"> Номер телефона того кто будет получать оповещения о событиях на сайте, обычно телефон администратора.</p> </td>
  • smsfly/trunk/includes/smsflyc.php

    r1617853 r2386956  
    1111        $this->password = $password;
    1212        if ($source == "") {
    13             $this->source = "InfoCentr";
     13            $this->source = "InfoCentr";
    1414        } else {
    15             $this->source = htmlspecialchars($source);
     15            $this->source = htmlspecialchars($source);
    1616        }
    1717
    18     }
    19 
    20     public function sfDebug($var,$exit = true)
    21     {
    22         echo "<pre>";
    23         var_dump($var);
    24         if ($exit) {
    25             exit();
    26         }
    2718    }
    2819
     
    3728        $lifetime       = 4;
    3829        $description    = '';
    39         $version        = 'wordpress 1.0.0';
     30        $version        = 'wordpress 1.1';
    4031        $textQuery   = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
    4132        $textQuery  .= "<request>";
     
    4738        $textQuery  .= "</request>";
    4839
    49         $obj = $this->sfQuery($textQuery);
     40        $obj = $this->sfQuery($textQuery);
    5041
    51         if ($debugmode) {
    52             $this->sfDebug($obj);
    53         }
    54 
    55         $text = $this->sfParser($obj,'code');
    56         return $text;
     42        if ($obj) {
     43            return $this->sfParser($obj,'code');
     44        } else {
     45            return false;
     46        }
    5747    }
    5848
     
    6555
    6656        $obj = $this->sfQuery($textQuery);
    67         return $this->sfParser($obj,'balance');
     57
     58        if ($obj) {
     59            return $this->sfParser($obj,'balance');
     60        } else {
     61            return false;
     62        }
    6863    }
    6964
     
    8277        curl_close($ch);
    8378
    84         if (isset($result)) {
    85             return $result;
    86         }
    87         return false;
     79        if (isset($result)) {
     80            return $result;
     81        }
     82        return false;
    8883    }
    8984
    90     private function sfParser ($obj, $child, $attribut=null)
    91     {
    92         $text = '';
    93         if ($obj == 'EMPTY REQUEST' || $obj == false) {
    94             $text = 'Не удалось авторизироваться на сервисе!';
    95         } elseif ($obj == 'Access denied!') {
    96             $text = 'Не правильный логин или пароль!';
    97         } else {
    98             $xml = new SimpleXMLElement($obj);
    99 
    100             if ($child == 'balance') {
    101                 $text = "У Вас на счету ".(string)$xml->balance. " грн. ";
    102             } elseif ($child == 'code') {
    103                 $code = (string)$xml->state['code'];
    104                 switch ($code) {
    105                     case 'ERRPHONES': $text = "Неправильный номер получателя!"; break;
    106                     case 'ACCEPT': $text = "Сообщение отправлено."; break;
    107                     case 'ERRTEXT': $text = "Текст сообщения не может быть пустым."; break;
    108                 }
    109             }
     85    private function sfParser ($obj, $child, $attribut=null) {
     86        if ($obj === 'Access denied! Incorrect login or password.') {
     87            return "Неверные учетные данные!";
    11088        }
    11189
    112         if ((string)$text !== '') {
    113             return (string)$text;
     90        try {
     91            $xml = new SimpleXMLElement($obj);
     92
     93            if ($child === 'balance') {
     94                return "У Вас на счету ".(string)$xml->balance. " грн. ";
     95            }
     96
     97            if ($child === 'code') {
     98                $code = (string)$xml->state['code'];
     99                switch ($code) {
     100                    case 'ERRPHONES': $text = "Неправильный номер получателя!"; break;
     101                    case 'ACCEPT': $text = "Сообщение отправлено."; break;
     102                    case 'ERRTEXT': $text = "Текст сообщения не может быть пустым."; break;
     103                    default: error_log($obj); return false;
     104                }
     105
     106                return $text;
     107            }
     108        } catch (Exception $e) {
     109            error_log($obj);
     110            return false;
    114111        }
    115         $this->sfDebug($obj);
    116         return false;
    117112    }
    118113}
  • smsfly/trunk/readme.txt

    r1617856 r2386956  
    3232* Уведомление о смене статуса заказа на телефон клиента.
    3333
     34Уведомления о событиях для Contact Form 7.
     35
    3436== Installation ==
    3537
  • smsfly/trunk/smsfly.php

    r1617853 r2386956  
    4444
    4545function smsfly_deactivate() {
    46 
     46//    delete_option('SMSFLY_login');
     47//    delete_option('SMSFLY_pass');
    4748}
    4849
Note: See TracChangeset for help on using the changeset viewer.