Plugin Directory

Changeset 3269056


Ignore:
Timestamp:
04/08/2025 04:19:57 PM (12 months ago)
Author:
jrmoser
Message:

version 1.2.4

Location:
bin-tracker-online
Files:
12 edited
1 copied

Legend:

Unmodified
Added
Removed
  • bin-tracker-online/tags/1.2.4/bin-tracker-online.php

    r3263592 r3269056  
    88Plugin URI: https://www.bintracker.software/api/word-press-plugin.html
    99Description: The plug in provides integration with a private web application for Bin their Dump That, a franchisor in the waste hauling industry
    10 Version: 1.2.3
     10Version: 1.2.4
    1111Author: Cairn Applications Inc
    1212Author URI: https://www.cloud-computing.rocks/
  • bin-tracker-online/tags/1.2.4/includes/base/activate.php

    r3105698 r3269056  
    1212    public static function b1nT_activate() {
    1313        flush_rewrite_rules();
    14         self::b1nT_create_states_table();
    15     }
    16 
    17     /**
    18      * This function will create the states table
    19      * which will be used to populate some of the
    20      * fields on the form.
    21      *
    22      */
    23     private static function b1nT_create_states_table() {
    24         global $wpdb;
    25         $b1nT_table_name = $wpdb->prefix.'b1nT_states';
    26         $b1nT_charset_collate = $wpdb->get_charset_collate();
    27 
    28         $b1nT_table_exist = $wpdb->get_var($wpdb->prepare('SHOW TABLES LIKE %s', $wpdb->esc_like($b1nT_table_name)));       
    29 
    30         if($b1nT_table_exist === $b1nT_table_name) {
    31             $wpdb->query($wpdb->prepare("DROP TABLE $b1nT_table_name"));
    32         }
    33 
    34         //create the table
    35         $b1nT_query_create_table = "CREATE TABLE $b1nT_table_name (
    36             `state_id` int(5) NOT NULL AUTO_INCREMENT,
    37             `state_name` varchar(40) NOT NULL,
    38             `state_short` varchar(10) NOT NULL,
    39             `country_id` varchar(10) NOT NULL,
    40             PRIMARY  KEY (`state_id`)
    41         ) $b1nT_charset_collate;";   
    42 
    43         //insert some values.
    44         $b1nT_query_insert_values = "INSERT INTO $b1nT_table_name (`state_id`, `state_name`, `state_short`, `country_id`) VALUES (1, 'Alabama', 'AL', 'USA'), (2, 'Alaska', 'AK', 'USA'), (3, 'Arizona', 'AZ', 'USA'), (4, 'Arkansas', 'AR', 'USA'), (5, 'California', 'CA', 'USA'), (6, 'Colorado', 'CO', 'USA'), (7, 'Connecticut', 'CT', 'USA'), (8, 'Delaware', 'DE', 'USA'), (9, 'Florida', 'FL', 'USA'), (10, 'Georgia', 'GA', 'USA'), (11, 'Hawaii', 'HI', 'USA'), (12, 'Idaho', 'ID', 'USA'), (13, 'Illinois', 'IL', 'USA'), (14, 'Indiana', 'IN', 'USA'), (15, 'Iowa', 'IA', 'USA'), (16, 'Kansas', 'KS', 'USA'), (17, 'Kentucky', 'KY', 'USA'), (18, 'Louisiana', 'LA', 'USA'), (19, 'Maine', 'ME', 'USA'), (20, 'Maryland', 'MD', 'USA'), (21, 'Massachusetts', 'MA', 'USA'), (22, 'Michigan', 'MI', 'USA'), (23, 'Minnesota', 'MN', 'USA'), (24, 'Mississippi', 'MS', 'USA'), (25, 'Missouri', 'MO', 'USA'), (26, 'Montana', 'MT', 'USA'), (27, 'Nebraska', 'NE', 'USA'), (28, 'Nevada', 'NV', 'USA'), (29, 'New Hampshire', 'NH', 'USA'), (30, 'New Jersey', 'NJ', 'USA'), (31, 'New Mexico', 'NM', 'USA'), (32, 'New York', 'NY', 'USA'), (33, 'North Carolina', 'NC', 'USA'), (34, 'North Dakota', 'ND', 'USA'), (35, 'Ohio', 'OH', 'USA'), (36, 'Oklahoma', 'OK', 'USA'), (37, 'Oregon', 'OR', 'USA'), (38, 'Pennsylvania', 'PA', 'USA'), (39, 'Rhode Island', 'RI', 'USA'), (40, 'South Carolina', 'SC', 'USA'), (41, 'South Dakota', 'SD', 'USA'), (42, 'Tennessee', 'TN', 'USA'), (43, 'Texas', 'TX', 'USA'), (44, 'Utah', 'UT', 'USA'), (45, 'Vermont', 'VT', 'USA'), (46, 'Virginia', 'VA', 'USA'), (47, 'Washington', 'WA', 'USA'), (48, 'West Virginia', 'WV', 'USA'), (49, 'Wisconsin', 'WI', 'USA'), (50, 'Wyoming', 'WY', 'USA'), (51, 'Alberta', 'AB', 'CAN'), (52, 'British Columbia', 'BC', 'CAN'), (53, 'Manitoba', 'MB', 'CAN'), (54, 'New Brunswick', 'NB', 'CAN'), (55, 'Newfoundland', 'NL', 'CAN'), (56, 'Northwest Territories', 'NT', 'CAN'), (57, 'Nova Scotia', 'NS', 'CAN'), (58, 'Nunavut', 'NU', 'CAN'), (59, 'Ontario', 'ON', 'CAN'), (60, 'Prince Edward Island', 'PE', 'CAN'), (61, 'Quebec', 'QC', 'CAN'), (62, 'Saskatchewan', 'SK', 'CAN'), (63, 'Yukon', 'YT', 'CAN')";
    45 
    46         require_once(ABSPATH.'wp-admin/includes/upgrade.php');
    47         dbDelta($b1nT_query_create_table);
    48         dbDelta($b1nT_query_insert_values);
    4914    }
    5015}
  • bin-tracker-online/tags/1.2.4/includes/base/ajax-control.php

    r3263592 r3269056  
    4545        }
    4646
    47         //list of states that match the country and then create state list
    48         $b1nT_ss_billing_country = sanitize_text_field(get_option('b1nT_admin_country'));
    49         $b1nT_states             = $this->b1nT_server_calls->b1nT_get_states($b1nT_ss_billing_country); //b1nT_get_states() sanitizes values
    50         $b1nT_state_list         = '<option value="">--Select State--</option>';
    51 
    52         if(is_array($b1nT_states)) {
    53             foreach($b1nT_states as $b1nT_state){
    54                 $b1nT_state_list .= '<option value="'.$b1nT_state->state_short.'">'.$b1nT_state->state_name.'</option>';
    55             }
    56         }
    57 
    58         //return array
    59         $job_state_list_data = array(
    60             'b1nT_state_list' => $b1nT_state_list
    61         );
    62 
    63         wp_send_json($this->b1nT_response('success', 'State date found.', $job_state_list_data));
     47        $b1nT_handshake = $this->b1nT_server_calls->b1nT_handshake(); //b1nT_handshake() sanitizes values
     48
     49        if($b1nT_handshake && $b1nT_handshake->status == '200') {
     50            $b1nT_ss_billing_country = sanitize_text_field(get_option('b1nT_admin_country'));
     51            $b1nT_states_query       = $this->b1nT_server_calls->b1nT_get_states($b1nT_ss_billing_country, $b1nT_handshake->key); //b1nT_get_states() sanitizes values
     52
     53            if($b1nT_states_query && $b1nT_states_query->status == '200') {
     54                $b1nT_states     = $b1nT_states_query->stateList;
     55                $b1nT_state_list = '<option value="">--Select State--</option>';
     56
     57                if(is_array($b1nT_states)) {
     58                    foreach($b1nT_states as $b1nT_state){
     59                        $b1nT_state_list .= '<option value="'.$b1nT_state->state_short.'">'.$b1nT_state->state_name.'</option>';
     60                    }
     61                }
     62
     63                //return array
     64                $job_state_list_data = array(
     65                    'b1nT_state_list' => $b1nT_state_list
     66                );
     67
     68                wp_send_json($this->b1nT_response('success', 'State date found.', $job_state_list_data));
     69            } else {
     70                $b1nT_message = 'Status: '.$b1nT_states_query->status.'<br>Error: '.$b1nT_states_query->errorString;
     71                wp_send_json($this->b1nT_response('error', $b1nT_message, ''));
     72            }
     73        } else {
     74            $b1nT_message = 'Status: '.$b1nT_handshake->status.'<br>Error: '.$b1nT_handshake->errorString;
     75            wp_send_json($this->b1nT_response('error', $b1nT_message, ''));
     76        }
    6477    }
    6578
     
    519532        $b1nT_payment_state_list   = '<option value="">--Select Payment State--</option>';
    520533
    521         $b1nT_states = $this->b1nT_server_calls->b1nT_get_states($b1nT_ss_billing_country); //b1nT_get_states() sanitizes values
    522 
    523         if(is_array($b1nT_states)) {
    524             foreach($b1nT_states as $b1nT_state){
    525                 $b1nT_billing_state_list .= '<option value="'.$b1nT_state->state_short.'" '.'>'.$b1nT_state->state_name.'</option>';
    526                 $b1nT_payment_state_list .= '<option value="'.$b1nT_state->state_short.'" '.'>'.$b1nT_state->state_name.'</option>';
    527             }
    528         }
    529 
    530         $b1nT_state_full     = $this->b1nT_server_calls->b1nT_get_state_name($b1nT_job_state); //b1nT_get_state_name() sanitizes values
    531         $b1nT_address        = $b1nT_state_full ? $b1nT_job_address.",".$b1nT_job_city.",".sanitize_text_field($b1nT_state_full->state_name)." ".$b1nT_job_zipcode.",".sanitize_text_field($b1nT_ss_billing_country) : "";
     534        $b1nT_address   = "";
     535        $b1nT_handshake = $this->b1nT_server_calls->b1nT_handshake(); //b1nT_handshake() sanitizes values
     536
     537        if($b1nT_handshake && $b1nT_handshake->status == '200') {
     538            $b1nT_states_query = $this->b1nT_server_calls->b1nT_get_states($b1nT_ss_billing_country, $b1nT_handshake->key); //b1nT_get_states() sanitizes values
     539
     540            if($b1nT_states_query && $b1nT_states_query->status == '200') {
     541                $b1nT_states = $b1nT_states_query->stateList;
     542
     543                if(is_array($b1nT_states)) {
     544                    foreach($b1nT_states as $b1nT_state){
     545                        $b1nT_billing_state_list .= '<option value="'.$b1nT_state->state_short.'" '.'>'.$b1nT_state->state_name.'</option>';
     546                        $b1nT_payment_state_list .= '<option value="'.$b1nT_state->state_short.'" '.'>'.$b1nT_state->state_name.'</option>';
     547                    }
     548                }
     549
     550                $b1nT_state_full_query = $this->b1nT_server_calls->b1nT_get_state_name($b1nT_job_state, $b1nT_handshake->key); //b1nT_get_state_name() sanitizes values
     551
     552                if($b1nT_state_full_query && $b1nT_state_full_query->status == '200') {
     553                    $b1nT_state_full = $b1nT_state_full_query->stateObject;
     554                    $b1nT_address = $b1nT_state_full ? $b1nT_job_address.",".$b1nT_job_city.",".sanitize_text_field($b1nT_state_full->state_name)." ".$b1nT_job_zipcode.",".sanitize_text_field($b1nT_ss_billing_country) : "";
     555                } else {
     556                    $b1nT_message = 'Status: '.$b1nT_state_full_query->status.'<br>Error: '.$b1nT_state_full_query->errorString;
     557                    wp_send_json($this->b1nT_response('error', $b1nT_message, ''));
     558                }
     559            } else {
     560                $b1nT_message = 'Status: '.$b1nT_states_query->status.'<br>Error: '.$b1nT_states_query->errorString;
     561                wp_send_json($this->b1nT_response('error', $b1nT_message, ''));
     562            }
     563        } else {
     564            $b1nT_message = 'Status: '.$b1nT_handshake->status.'<br>Error: '.$b1nT_handshake->errorString;
     565            wp_send_json($this->b1nT_response('error', $b1nT_message, ''));
     566        }
     567
    532568        $b1nT_lat_long_query = $this->b1nT_server_calls->b1nT_get_latitude_longitude($b1nT_address); //b1nT_get_latitude_longitude() sanitizes values
    533569
     
    573609            $b1nT_ss_map_center_lng = is_numeric($b1nT_ss_map_center_lng) && $b1nT_ss_map_center_lng >= -180 && $b1nT_ss_map_center_lng <= 180 ? $b1nT_ss_map_center_lng : "0";
    574610
    575             $b1nT_driving_distance_query = $this->b1nT_server_calls->b1nT_get_driving_distance($b1nT_lat, $b1nT_long, $b1nT_ss_map_center_lat, $b1nT_ss_map_center_lng); //b1nT_get_driving_distance() sanitizes values
    576 
    577 
    578             $b1nT_drv_distance_clean;
    579             $b1nT_drv_distance;
    580 
    581             //error = skip this irritation
     611            $b1nT_matrix_api_check = function() use($b1nT_lat, $b1nT_long, $b1nT_ss_map_center_lat, $b1nT_ss_map_center_lng) {
     612                $b1nT_response_query = $this->b1nT_server_calls->b1nT_get_driving_distance($b1nT_lat, $b1nT_long, $b1nT_ss_map_center_lat, $b1nT_ss_map_center_lng); //b1nT_get_driving_distance() sanitizes values
     613                delete_option('b1nT_distance_api'); #remove
     614                if(!$b1nT_response_query['b1nT_error_message']) {
     615                    add_option('b1nT_distance_api', 'Matrix API');
     616                }
     617                return $b1nT_response_query;
     618            };
     619
     620            $b1nT_routes_api_check = function() use($b1nT_lat, $b1nT_long, $b1nT_ss_map_center_lat, $b1nT_ss_map_center_lng) {
     621                $b1nT_response_query = $this->b1nT_server_calls->b1nT_get_driving_distance_routes_api($b1nT_lat, $b1nT_long, $b1nT_ss_map_center_lat, $b1nT_ss_map_center_lng); //b1nT_get_driving_distance_routes_api() sanitizes values     
     622                if(!(sanitize_text_field(get_option('b1nT_distance_api')) == 'Routes API')) {
     623                    delete_option('b1nT_distance_api'); #remove
     624                    if(!$b1nT_response_query['b1nT_error_message']) {
     625                        add_option('b1nT_distance_api', 'Routes API');
     626                    }
     627                }
     628                return $b1nT_response_query;
     629            };
     630
     631            $b1nT_both_api_check = function() use($b1nT_matrix_api_check, $b1nT_routes_api_check) {
     632                $b1nT_response_query = $b1nT_matrix_api_check();
     633                if($b1nT_response_query['b1nT_error_message']) {
     634                    $b1nT_response_query = $b1nT_routes_api_check();
     635                }
     636                return $b1nT_response_query;   
     637            };
     638
     639            $b1nT_get_distance_query = function() use($b1nT_both_api_check, $b1nT_routes_api_check) {
     640                if(!get_option('b1nT_distance_api') || sanitize_text_field(get_option('b1nT_distance_api')) == 'Matrix API') {
     641                    $b1nT_response_query = $b1nT_both_api_check();
     642                } elseif(sanitize_text_field(get_option('b1nT_distance_api')) == 'Routes API') {
     643                    $b1nT_response_query = $b1nT_routes_api_check();
     644                }
     645                return $b1nT_response_query;
     646            };
     647
     648            $b1nT_driving_distance_query = $b1nT_get_distance_query();
     649
    582650            if($b1nT_driving_distance_query['b1nT_error_message']) {
    583                 $b1nT_driving_distance_query_rapi = $this->b1nT_server_calls->b1nT_get_driving_distance_routes_api($b1nT_lat, $b1nT_long, $b1nT_ss_map_center_lat, $b1nT_ss_map_center_lng); //b1nT_get_driving_distance() sanitizes values
    584 
    585                 if($b1nT_driving_distance_query_rapi['b1nT_error_message']) {
    586                     $b1nT_push_errors('400');
    587                     continue;
    588                 }
    589 
    590                 $b1nT_drv_distance_clean = sanitize_text_field($b1nT_driving_distance_query_rapi['b1nT_distance']);
    591                 $b1nT_drv_distance       = sanitize_text_field(str_replace(array("km", "mi", ","), "", $b1nT_driving_distance_query_rapi['b1nT_distance']));
    592             } else {
    593                 $b1nT_drv_distance_clean = sanitize_text_field($b1nT_driving_distance_query['b1nT_distance']);
    594                 $b1nT_drv_distance       = sanitize_text_field(str_replace(array("km", "mi", ","), "", $b1nT_driving_distance_query['b1nT_distance']));
    595             }
    596 
     651                $b1nT_push_errors('400');
     652                continue;
     653            }
     654
     655            $b1nT_drv_distance_clean = sanitize_text_field($b1nT_driving_distance_query['b1nT_distance']);
     656            $b1nT_drv_distance       = sanitize_text_field(str_replace(array("km", "mi", ","), "", $b1nT_driving_distance_query['b1nT_distance']));
     657           
    597658            //we need a numeric values
    598659            if(!is_numeric($b1nT_drv_distance)) {
  • bin-tracker-online/tags/1.2.4/includes/base/server-calls.php

    r3263592 r3269056  
    168168        }
    169169
    170         return array('b1nT_distance' => $b1nT_dist, 'b1nT_time' => $b1nT_time, 'b1nT_response' => $b1nT_response);
     170        return array('b1nT_distance' => $b1nT_dist, 'b1nT_time' => $b1nT_time, 'b1nT_response' => $b1nT_response, 'b1nT_API' => 'Matrix API');
    171171    }
    172172
     
    247247        }
    248248
    249         return array('b1nT_distance' => $b1nT_dist, 'b1nT_time' => $b1nT_time, 'b1nT_response' => $b1nT_response);
     249        return array('b1nT_distance' => $b1nT_dist, 'b1nT_time' => $b1nT_time, 'b1nT_response' => $b1nT_response, 'b1nT_API' => 'Routes API');
    250250    }
    251251
     
    356356     * @return string
    357357     */
    358     function b1nT_get_states($b1nT_country_id) {
     358    function b1nT_get_states($b1nT_country_id, $b1nT_key) {
     359        $b1nT_username   = sanitize_text_field(get_option('b1nT_username'));
    359360        $b1nT_country_id = sanitize_text_field($b1nT_country_id);
    360 
    361         global $wpdb;
     361        $b1nT_key        = sanitize_text_field($b1nT_key);
     362
    362363        if($b1nT_country_id == "Canada"){
    363364             $b1nT_country_id = 'CAN';
     
    366367        }
    367368
    368         $b1nT_table_name = $wpdb->prefix."b1nT_states";
    369         $b1nT_output = $wpdb->get_results($wpdb->prepare("SELECT * FROM $b1nT_table_name WHERE country_id = %s", $b1nT_country_id));
    370 
    371         if(!is_array($b1nT_output)) { return null; }
    372         return $this->b1nT_sanitize_array_values($b1nT_output); //b1nT_sanitize_array_values() sanitizes values
     369        $b1nT_sate_list = array(
     370            'command'   => 'cmdBinTWebAPIStateList',
     371            'username'  => $b1nT_username,
     372            'country'   => $b1nT_country_id,
     373            'key'       => $b1nT_key
     374        );
     375
     376        $b1nT_state_list_query_string = http_build_query($b1nT_sate_list);
     377        $b1nT_response                = wp_remote_post($this->b1nT_boxT_url, array('body' => $b1nT_state_list_query_string));
     378        return $this->b1nT_sanitize_reponse(json_decode($b1nT_response['body'])); //b1nT_sanitize_reponse() sanitizes values
    373379    }
    374380
     
    379385     * @return string
    380386     */
    381     function b1nT_get_state_name($b1nT_state_code) {
     387    function b1nT_get_state_name($b1nT_state_code, $b1nT_key) {
     388        $b1nT_username   = sanitize_text_field(get_option('b1nT_username'));
    382389        $b1nT_state_code = sanitize_text_field($b1nT_state_code);
    383 
    384         global $wpdb;
    385         $b1nT_table_name = $wpdb->prefix."b1nT_states";
    386         $b1nT_output = $wpdb->get_row($wpdb->prepare("SELECT * FROM $b1nT_table_name WHERE state_short = %s", $b1nT_state_code));
    387 
    388         if(!is_object($b1nT_output)) { return null; }
    389         return $this->b1nT_sanitize_array_values($b1nT_output); //b1nT_sanitize_array_values() sanitizes values
     390        $b1nT_key        = sanitize_text_field($b1nT_key);
     391
     392        $b1nT_sate_list = array(
     393            'command'     => 'cmdBinTWebAPIStateList',
     394            'username'    => $b1nT_username,
     395            'state_short' => $b1nT_state_code,
     396            'key'         => $b1nT_key
     397        );
     398
     399        $b1nT_state_list_query_string = http_build_query($b1nT_sate_list);
     400        $b1nT_response                = wp_remote_post($this->b1nT_boxT_url, array('body' => $b1nT_state_list_query_string));
     401        return $this->b1nT_sanitize_reponse(json_decode($b1nT_response['body'])); //b1nT_sanitize_reponse() sanitizes values
    390402    }
    391403
  • bin-tracker-online/tags/1.2.4/readme.txt

    r3263592 r3269056  
    44Requires PHP: 5.6.4
    55Tested up to: 6.7.2
    6 Stable tag: 1.2.3
     6Stable tag: 1.2.4
    77License: GPLv2 or later
    88License URI: http://www.gnu.org/licenses/gpl-2.0.html
  • bin-tracker-online/tags/1.2.4/uninstall.php

    r3105698 r3269056  
    1919 delete_option('b1nT_admin_debug');
    2020 delete_option('b1nT_google_validation_bypass');
     21 delete_option('b1nT_distance_api');
  • bin-tracker-online/trunk/bin-tracker-online.php

    r3263592 r3269056  
    88Plugin URI: https://www.bintracker.software/api/word-press-plugin.html
    99Description: The plug in provides integration with a private web application for Bin their Dump That, a franchisor in the waste hauling industry
    10 Version: 1.2.3
     10Version: 1.2.4
    1111Author: Cairn Applications Inc
    1212Author URI: https://www.cloud-computing.rocks/
  • bin-tracker-online/trunk/includes/base/activate.php

    r3105698 r3269056  
    1212    public static function b1nT_activate() {
    1313        flush_rewrite_rules();
    14         self::b1nT_create_states_table();
    15     }
    16 
    17     /**
    18      * This function will create the states table
    19      * which will be used to populate some of the
    20      * fields on the form.
    21      *
    22      */
    23     private static function b1nT_create_states_table() {
    24         global $wpdb;
    25         $b1nT_table_name = $wpdb->prefix.'b1nT_states';
    26         $b1nT_charset_collate = $wpdb->get_charset_collate();
    27 
    28         $b1nT_table_exist = $wpdb->get_var($wpdb->prepare('SHOW TABLES LIKE %s', $wpdb->esc_like($b1nT_table_name)));       
    29 
    30         if($b1nT_table_exist === $b1nT_table_name) {
    31             $wpdb->query($wpdb->prepare("DROP TABLE $b1nT_table_name"));
    32         }
    33 
    34         //create the table
    35         $b1nT_query_create_table = "CREATE TABLE $b1nT_table_name (
    36             `state_id` int(5) NOT NULL AUTO_INCREMENT,
    37             `state_name` varchar(40) NOT NULL,
    38             `state_short` varchar(10) NOT NULL,
    39             `country_id` varchar(10) NOT NULL,
    40             PRIMARY  KEY (`state_id`)
    41         ) $b1nT_charset_collate;";   
    42 
    43         //insert some values.
    44         $b1nT_query_insert_values = "INSERT INTO $b1nT_table_name (`state_id`, `state_name`, `state_short`, `country_id`) VALUES (1, 'Alabama', 'AL', 'USA'), (2, 'Alaska', 'AK', 'USA'), (3, 'Arizona', 'AZ', 'USA'), (4, 'Arkansas', 'AR', 'USA'), (5, 'California', 'CA', 'USA'), (6, 'Colorado', 'CO', 'USA'), (7, 'Connecticut', 'CT', 'USA'), (8, 'Delaware', 'DE', 'USA'), (9, 'Florida', 'FL', 'USA'), (10, 'Georgia', 'GA', 'USA'), (11, 'Hawaii', 'HI', 'USA'), (12, 'Idaho', 'ID', 'USA'), (13, 'Illinois', 'IL', 'USA'), (14, 'Indiana', 'IN', 'USA'), (15, 'Iowa', 'IA', 'USA'), (16, 'Kansas', 'KS', 'USA'), (17, 'Kentucky', 'KY', 'USA'), (18, 'Louisiana', 'LA', 'USA'), (19, 'Maine', 'ME', 'USA'), (20, 'Maryland', 'MD', 'USA'), (21, 'Massachusetts', 'MA', 'USA'), (22, 'Michigan', 'MI', 'USA'), (23, 'Minnesota', 'MN', 'USA'), (24, 'Mississippi', 'MS', 'USA'), (25, 'Missouri', 'MO', 'USA'), (26, 'Montana', 'MT', 'USA'), (27, 'Nebraska', 'NE', 'USA'), (28, 'Nevada', 'NV', 'USA'), (29, 'New Hampshire', 'NH', 'USA'), (30, 'New Jersey', 'NJ', 'USA'), (31, 'New Mexico', 'NM', 'USA'), (32, 'New York', 'NY', 'USA'), (33, 'North Carolina', 'NC', 'USA'), (34, 'North Dakota', 'ND', 'USA'), (35, 'Ohio', 'OH', 'USA'), (36, 'Oklahoma', 'OK', 'USA'), (37, 'Oregon', 'OR', 'USA'), (38, 'Pennsylvania', 'PA', 'USA'), (39, 'Rhode Island', 'RI', 'USA'), (40, 'South Carolina', 'SC', 'USA'), (41, 'South Dakota', 'SD', 'USA'), (42, 'Tennessee', 'TN', 'USA'), (43, 'Texas', 'TX', 'USA'), (44, 'Utah', 'UT', 'USA'), (45, 'Vermont', 'VT', 'USA'), (46, 'Virginia', 'VA', 'USA'), (47, 'Washington', 'WA', 'USA'), (48, 'West Virginia', 'WV', 'USA'), (49, 'Wisconsin', 'WI', 'USA'), (50, 'Wyoming', 'WY', 'USA'), (51, 'Alberta', 'AB', 'CAN'), (52, 'British Columbia', 'BC', 'CAN'), (53, 'Manitoba', 'MB', 'CAN'), (54, 'New Brunswick', 'NB', 'CAN'), (55, 'Newfoundland', 'NL', 'CAN'), (56, 'Northwest Territories', 'NT', 'CAN'), (57, 'Nova Scotia', 'NS', 'CAN'), (58, 'Nunavut', 'NU', 'CAN'), (59, 'Ontario', 'ON', 'CAN'), (60, 'Prince Edward Island', 'PE', 'CAN'), (61, 'Quebec', 'QC', 'CAN'), (62, 'Saskatchewan', 'SK', 'CAN'), (63, 'Yukon', 'YT', 'CAN')";
    45 
    46         require_once(ABSPATH.'wp-admin/includes/upgrade.php');
    47         dbDelta($b1nT_query_create_table);
    48         dbDelta($b1nT_query_insert_values);
    4914    }
    5015}
  • bin-tracker-online/trunk/includes/base/ajax-control.php

    r3263592 r3269056  
    4545        }
    4646
    47         //list of states that match the country and then create state list
    48         $b1nT_ss_billing_country = sanitize_text_field(get_option('b1nT_admin_country'));
    49         $b1nT_states             = $this->b1nT_server_calls->b1nT_get_states($b1nT_ss_billing_country); //b1nT_get_states() sanitizes values
    50         $b1nT_state_list         = '<option value="">--Select State--</option>';
    51 
    52         if(is_array($b1nT_states)) {
    53             foreach($b1nT_states as $b1nT_state){
    54                 $b1nT_state_list .= '<option value="'.$b1nT_state->state_short.'">'.$b1nT_state->state_name.'</option>';
    55             }
    56         }
    57 
    58         //return array
    59         $job_state_list_data = array(
    60             'b1nT_state_list' => $b1nT_state_list
    61         );
    62 
    63         wp_send_json($this->b1nT_response('success', 'State date found.', $job_state_list_data));
     47        $b1nT_handshake = $this->b1nT_server_calls->b1nT_handshake(); //b1nT_handshake() sanitizes values
     48
     49        if($b1nT_handshake && $b1nT_handshake->status == '200') {
     50            $b1nT_ss_billing_country = sanitize_text_field(get_option('b1nT_admin_country'));
     51            $b1nT_states_query       = $this->b1nT_server_calls->b1nT_get_states($b1nT_ss_billing_country, $b1nT_handshake->key); //b1nT_get_states() sanitizes values
     52
     53            if($b1nT_states_query && $b1nT_states_query->status == '200') {
     54                $b1nT_states     = $b1nT_states_query->stateList;
     55                $b1nT_state_list = '<option value="">--Select State--</option>';
     56
     57                if(is_array($b1nT_states)) {
     58                    foreach($b1nT_states as $b1nT_state){
     59                        $b1nT_state_list .= '<option value="'.$b1nT_state->state_short.'">'.$b1nT_state->state_name.'</option>';
     60                    }
     61                }
     62
     63                //return array
     64                $job_state_list_data = array(
     65                    'b1nT_state_list' => $b1nT_state_list
     66                );
     67
     68                wp_send_json($this->b1nT_response('success', 'State date found.', $job_state_list_data));
     69            } else {
     70                $b1nT_message = 'Status: '.$b1nT_states_query->status.'<br>Error: '.$b1nT_states_query->errorString;
     71                wp_send_json($this->b1nT_response('error', $b1nT_message, ''));
     72            }
     73        } else {
     74            $b1nT_message = 'Status: '.$b1nT_handshake->status.'<br>Error: '.$b1nT_handshake->errorString;
     75            wp_send_json($this->b1nT_response('error', $b1nT_message, ''));
     76        }
    6477    }
    6578
     
    519532        $b1nT_payment_state_list   = '<option value="">--Select Payment State--</option>';
    520533
    521         $b1nT_states = $this->b1nT_server_calls->b1nT_get_states($b1nT_ss_billing_country); //b1nT_get_states() sanitizes values
    522 
    523         if(is_array($b1nT_states)) {
    524             foreach($b1nT_states as $b1nT_state){
    525                 $b1nT_billing_state_list .= '<option value="'.$b1nT_state->state_short.'" '.'>'.$b1nT_state->state_name.'</option>';
    526                 $b1nT_payment_state_list .= '<option value="'.$b1nT_state->state_short.'" '.'>'.$b1nT_state->state_name.'</option>';
    527             }
    528         }
    529 
    530         $b1nT_state_full     = $this->b1nT_server_calls->b1nT_get_state_name($b1nT_job_state); //b1nT_get_state_name() sanitizes values
    531         $b1nT_address        = $b1nT_state_full ? $b1nT_job_address.",".$b1nT_job_city.",".sanitize_text_field($b1nT_state_full->state_name)." ".$b1nT_job_zipcode.",".sanitize_text_field($b1nT_ss_billing_country) : "";
     534        $b1nT_address   = "";
     535        $b1nT_handshake = $this->b1nT_server_calls->b1nT_handshake(); //b1nT_handshake() sanitizes values
     536
     537        if($b1nT_handshake && $b1nT_handshake->status == '200') {
     538            $b1nT_states_query = $this->b1nT_server_calls->b1nT_get_states($b1nT_ss_billing_country, $b1nT_handshake->key); //b1nT_get_states() sanitizes values
     539
     540            if($b1nT_states_query && $b1nT_states_query->status == '200') {
     541                $b1nT_states = $b1nT_states_query->stateList;
     542
     543                if(is_array($b1nT_states)) {
     544                    foreach($b1nT_states as $b1nT_state){
     545                        $b1nT_billing_state_list .= '<option value="'.$b1nT_state->state_short.'" '.'>'.$b1nT_state->state_name.'</option>';
     546                        $b1nT_payment_state_list .= '<option value="'.$b1nT_state->state_short.'" '.'>'.$b1nT_state->state_name.'</option>';
     547                    }
     548                }
     549
     550                $b1nT_state_full_query = $this->b1nT_server_calls->b1nT_get_state_name($b1nT_job_state, $b1nT_handshake->key); //b1nT_get_state_name() sanitizes values
     551
     552                if($b1nT_state_full_query && $b1nT_state_full_query->status == '200') {
     553                    $b1nT_state_full = $b1nT_state_full_query->stateObject;
     554                    $b1nT_address = $b1nT_state_full ? $b1nT_job_address.",".$b1nT_job_city.",".sanitize_text_field($b1nT_state_full->state_name)." ".$b1nT_job_zipcode.",".sanitize_text_field($b1nT_ss_billing_country) : "";
     555                } else {
     556                    $b1nT_message = 'Status: '.$b1nT_state_full_query->status.'<br>Error: '.$b1nT_state_full_query->errorString;
     557                    wp_send_json($this->b1nT_response('error', $b1nT_message, ''));
     558                }
     559            } else {
     560                $b1nT_message = 'Status: '.$b1nT_states_query->status.'<br>Error: '.$b1nT_states_query->errorString;
     561                wp_send_json($this->b1nT_response('error', $b1nT_message, ''));
     562            }
     563        } else {
     564            $b1nT_message = 'Status: '.$b1nT_handshake->status.'<br>Error: '.$b1nT_handshake->errorString;
     565            wp_send_json($this->b1nT_response('error', $b1nT_message, ''));
     566        }
     567
    532568        $b1nT_lat_long_query = $this->b1nT_server_calls->b1nT_get_latitude_longitude($b1nT_address); //b1nT_get_latitude_longitude() sanitizes values
    533569
     
    573609            $b1nT_ss_map_center_lng = is_numeric($b1nT_ss_map_center_lng) && $b1nT_ss_map_center_lng >= -180 && $b1nT_ss_map_center_lng <= 180 ? $b1nT_ss_map_center_lng : "0";
    574610
    575             $b1nT_driving_distance_query = $this->b1nT_server_calls->b1nT_get_driving_distance($b1nT_lat, $b1nT_long, $b1nT_ss_map_center_lat, $b1nT_ss_map_center_lng); //b1nT_get_driving_distance() sanitizes values
    576 
    577 
    578             $b1nT_drv_distance_clean;
    579             $b1nT_drv_distance;
    580 
    581             //error = skip this irritation
     611            $b1nT_matrix_api_check = function() use($b1nT_lat, $b1nT_long, $b1nT_ss_map_center_lat, $b1nT_ss_map_center_lng) {
     612                $b1nT_response_query = $this->b1nT_server_calls->b1nT_get_driving_distance($b1nT_lat, $b1nT_long, $b1nT_ss_map_center_lat, $b1nT_ss_map_center_lng); //b1nT_get_driving_distance() sanitizes values
     613                delete_option('b1nT_distance_api'); #remove
     614                if(!$b1nT_response_query['b1nT_error_message']) {
     615                    add_option('b1nT_distance_api', 'Matrix API');
     616                }
     617                return $b1nT_response_query;
     618            };
     619
     620            $b1nT_routes_api_check = function() use($b1nT_lat, $b1nT_long, $b1nT_ss_map_center_lat, $b1nT_ss_map_center_lng) {
     621                $b1nT_response_query = $this->b1nT_server_calls->b1nT_get_driving_distance_routes_api($b1nT_lat, $b1nT_long, $b1nT_ss_map_center_lat, $b1nT_ss_map_center_lng); //b1nT_get_driving_distance_routes_api() sanitizes values     
     622                if(!(sanitize_text_field(get_option('b1nT_distance_api')) == 'Routes API')) {
     623                    delete_option('b1nT_distance_api'); #remove
     624                    if(!$b1nT_response_query['b1nT_error_message']) {
     625                        add_option('b1nT_distance_api', 'Routes API');
     626                    }
     627                }
     628                return $b1nT_response_query;
     629            };
     630
     631            $b1nT_both_api_check = function() use($b1nT_matrix_api_check, $b1nT_routes_api_check) {
     632                $b1nT_response_query = $b1nT_matrix_api_check();
     633                if($b1nT_response_query['b1nT_error_message']) {
     634                    $b1nT_response_query = $b1nT_routes_api_check();
     635                }
     636                return $b1nT_response_query;   
     637            };
     638
     639            $b1nT_get_distance_query = function() use($b1nT_both_api_check, $b1nT_routes_api_check) {
     640                if(!get_option('b1nT_distance_api') || sanitize_text_field(get_option('b1nT_distance_api')) == 'Matrix API') {
     641                    $b1nT_response_query = $b1nT_both_api_check();
     642                } elseif(sanitize_text_field(get_option('b1nT_distance_api')) == 'Routes API') {
     643                    $b1nT_response_query = $b1nT_routes_api_check();
     644                }
     645                return $b1nT_response_query;
     646            };
     647
     648            $b1nT_driving_distance_query = $b1nT_get_distance_query();
     649
    582650            if($b1nT_driving_distance_query['b1nT_error_message']) {
    583                 $b1nT_driving_distance_query_rapi = $this->b1nT_server_calls->b1nT_get_driving_distance_routes_api($b1nT_lat, $b1nT_long, $b1nT_ss_map_center_lat, $b1nT_ss_map_center_lng); //b1nT_get_driving_distance() sanitizes values
    584 
    585                 if($b1nT_driving_distance_query_rapi['b1nT_error_message']) {
    586                     $b1nT_push_errors('400');
    587                     continue;
    588                 }
    589 
    590                 $b1nT_drv_distance_clean = sanitize_text_field($b1nT_driving_distance_query_rapi['b1nT_distance']);
    591                 $b1nT_drv_distance       = sanitize_text_field(str_replace(array("km", "mi", ","), "", $b1nT_driving_distance_query_rapi['b1nT_distance']));
    592             } else {
    593                 $b1nT_drv_distance_clean = sanitize_text_field($b1nT_driving_distance_query['b1nT_distance']);
    594                 $b1nT_drv_distance       = sanitize_text_field(str_replace(array("km", "mi", ","), "", $b1nT_driving_distance_query['b1nT_distance']));
    595             }
    596 
     651                $b1nT_push_errors('400');
     652                continue;
     653            }
     654
     655            $b1nT_drv_distance_clean = sanitize_text_field($b1nT_driving_distance_query['b1nT_distance']);
     656            $b1nT_drv_distance       = sanitize_text_field(str_replace(array("km", "mi", ","), "", $b1nT_driving_distance_query['b1nT_distance']));
     657           
    597658            //we need a numeric values
    598659            if(!is_numeric($b1nT_drv_distance)) {
  • bin-tracker-online/trunk/includes/base/server-calls.php

    r3263592 r3269056  
    168168        }
    169169
    170         return array('b1nT_distance' => $b1nT_dist, 'b1nT_time' => $b1nT_time, 'b1nT_response' => $b1nT_response);
     170        return array('b1nT_distance' => $b1nT_dist, 'b1nT_time' => $b1nT_time, 'b1nT_response' => $b1nT_response, 'b1nT_API' => 'Matrix API');
    171171    }
    172172
     
    247247        }
    248248
    249         return array('b1nT_distance' => $b1nT_dist, 'b1nT_time' => $b1nT_time, 'b1nT_response' => $b1nT_response);
     249        return array('b1nT_distance' => $b1nT_dist, 'b1nT_time' => $b1nT_time, 'b1nT_response' => $b1nT_response, 'b1nT_API' => 'Routes API');
    250250    }
    251251
     
    356356     * @return string
    357357     */
    358     function b1nT_get_states($b1nT_country_id) {
     358    function b1nT_get_states($b1nT_country_id, $b1nT_key) {
     359        $b1nT_username   = sanitize_text_field(get_option('b1nT_username'));
    359360        $b1nT_country_id = sanitize_text_field($b1nT_country_id);
    360 
    361         global $wpdb;
     361        $b1nT_key        = sanitize_text_field($b1nT_key);
     362
    362363        if($b1nT_country_id == "Canada"){
    363364             $b1nT_country_id = 'CAN';
     
    366367        }
    367368
    368         $b1nT_table_name = $wpdb->prefix."b1nT_states";
    369         $b1nT_output = $wpdb->get_results($wpdb->prepare("SELECT * FROM $b1nT_table_name WHERE country_id = %s", $b1nT_country_id));
    370 
    371         if(!is_array($b1nT_output)) { return null; }
    372         return $this->b1nT_sanitize_array_values($b1nT_output); //b1nT_sanitize_array_values() sanitizes values
     369        $b1nT_sate_list = array(
     370            'command'   => 'cmdBinTWebAPIStateList',
     371            'username'  => $b1nT_username,
     372            'country'   => $b1nT_country_id,
     373            'key'       => $b1nT_key
     374        );
     375
     376        $b1nT_state_list_query_string = http_build_query($b1nT_sate_list);
     377        $b1nT_response                = wp_remote_post($this->b1nT_boxT_url, array('body' => $b1nT_state_list_query_string));
     378        return $this->b1nT_sanitize_reponse(json_decode($b1nT_response['body'])); //b1nT_sanitize_reponse() sanitizes values
    373379    }
    374380
     
    379385     * @return string
    380386     */
    381     function b1nT_get_state_name($b1nT_state_code) {
     387    function b1nT_get_state_name($b1nT_state_code, $b1nT_key) {
     388        $b1nT_username   = sanitize_text_field(get_option('b1nT_username'));
    382389        $b1nT_state_code = sanitize_text_field($b1nT_state_code);
    383 
    384         global $wpdb;
    385         $b1nT_table_name = $wpdb->prefix."b1nT_states";
    386         $b1nT_output = $wpdb->get_row($wpdb->prepare("SELECT * FROM $b1nT_table_name WHERE state_short = %s", $b1nT_state_code));
    387 
    388         if(!is_object($b1nT_output)) { return null; }
    389         return $this->b1nT_sanitize_array_values($b1nT_output); //b1nT_sanitize_array_values() sanitizes values
     390        $b1nT_key        = sanitize_text_field($b1nT_key);
     391
     392        $b1nT_sate_list = array(
     393            'command'     => 'cmdBinTWebAPIStateList',
     394            'username'    => $b1nT_username,
     395            'state_short' => $b1nT_state_code,
     396            'key'         => $b1nT_key
     397        );
     398
     399        $b1nT_state_list_query_string = http_build_query($b1nT_sate_list);
     400        $b1nT_response                = wp_remote_post($this->b1nT_boxT_url, array('body' => $b1nT_state_list_query_string));
     401        return $this->b1nT_sanitize_reponse(json_decode($b1nT_response['body'])); //b1nT_sanitize_reponse() sanitizes values
    390402    }
    391403
  • bin-tracker-online/trunk/readme.txt

    r3263592 r3269056  
    44Requires PHP: 5.6.4
    55Tested up to: 6.7.2
    6 Stable tag: 1.2.3
     6Stable tag: 1.2.4
    77License: GPLv2 or later
    88License URI: http://www.gnu.org/licenses/gpl-2.0.html
  • bin-tracker-online/trunk/uninstall.php

    r3105698 r3269056  
    1919 delete_option('b1nT_admin_debug');
    2020 delete_option('b1nT_google_validation_bypass');
     21 delete_option('b1nT_distance_api');
Note: See TracChangeset for help on using the changeset viewer.