Plugin Directory

Changeset 3391483


Ignore:
Timestamp:
11/06/2025 10:28:15 PM (5 months ago)
Author:
coderzonebd
Message:

Release version 1.1.0 - free courier checking added

Location:
checkoutguard
Files:
10 edited
1 copied

Legend:

Unmodified
Added
Removed
  • checkoutguard/tags/1.1.0/checkoutguard.php

    r3388187 r3391483  
    33 * Plugin Name: CheckoutGuard
    44 * Plugin URI: https://coderzonebd.com/
    5  * Description: Tracks incomplete WooCommerce checkouts to help you understand cart abandonment. Includes a dashboard widget and basic fraud protection.
    6  * Version: 1.0.2
     5 * Description: Tracks incomplete WooCommerce checkouts to help you understand cart abandonment. Includes a dashboard widget, fraud protection, and courier success rate checking.
     6 * Version: 1.1.0
    77 * Requires at least: 5.6
    88 * Tested up to: 6.8.3
     
    3535
    3636// Define Core Plugin Constants
    37 define('CHECKOUTGUARD_VERSION', '1.0.1'); // Updated version
     37define('CHECKOUTGUARD_VERSION', '1.1.0'); // Updated version
    3838define('CHECKOUTGUARD_PLUGIN_DIR', plugin_dir_path(__FILE__));
    3939define('CHECKOUTGUARD_PLUGIN_URL', plugin_dir_url(__FILE__));
     
    4545require_once CHECKOUTGUARD_INC_DIR . 'utils.php';
    4646require_once CHECKOUTGUARD_ADMIN_DIR . 'admin-pages.php';
     47require_once CHECKOUTGUARD_ADMIN_DIR . 'courier-check-page.php';
     48require_once CHECKOUTGUARD_INC_DIR . 'courier-check-ajax.php';
    4749
    4850/**
     
    7981    add_action('wp_ajax_checkoutguard_delete_blocked_item', 'checkoutguard_handle_delete_blocked_item_ajax');
    8082
     83    // Courier check AJAX hooks
     84    add_action('wp_ajax_checkoutguard_courier_check', 'checkoutguard_handle_courier_check_ajax');
     85    add_action('wp_ajax_checkoutguard_get_recent_searches', 'checkoutguard_handle_get_recent_searches_ajax');
     86    add_action('wp_ajax_checkoutguard_delete_courier_search', 'checkoutguard_handle_delete_courier_search_ajax');
     87    add_action('wp_ajax_checkoutguard_clear_all_searches', 'checkoutguard_handle_clear_all_searches_ajax');
     88
    8189    // WooCommerce hooks
    8290    add_action('woocommerce_thankyou', 'checkoutguard_delete_incomplete_checkout_on_order_completion', 10, 1);
  • checkoutguard/tags/1.1.0/includes/activation.php

    r3388180 r3391483  
    7171    dbDelta($sql_numbers);
    7272
     73    // 3. Courier Searches Table
     74    $table_courier_searches = $wpdb->prefix . 'checkoutguard_courier_searches';
     75    $sql_courier = "CREATE TABLE {$table_courier_searches} (
     76        id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
     77        phone_number VARCHAR(20) NOT NULL,
     78        total_deliveries INT(11) DEFAULT 0,
     79        successful_deliveries INT(11) DEFAULT 0,
     80        success_rate DECIMAL(5,2) DEFAULT 0.00,
     81        risk_level VARCHAR(50) DEFAULT 'N/A',
     82        searched_by BIGINT(20) UNSIGNED DEFAULT 0,
     83        searched_at DATETIME NOT NULL,
     84        results_json LONGTEXT,
     85        PRIMARY KEY (id),
     86        KEY phone_number (phone_number),
     87        KEY searched_at (searched_at)
     88    ) {$charset_collate};";
     89    dbDelta($sql_courier);
     90
    7391    update_option('checkoutguard_plugin_version', CHECKOUTGUARD_VERSION);
    7492}
  • checkoutguard/tags/1.1.0/includes/admin/admin-menus.php

    r3388180 r3391483  
    5050        'checkoutguard_render_fraud_blocker_page'
    5151    );
     52
     53    // Sub-menu item for Courier Check
     54    add_submenu_page(
     55        'checkoutguard-dashboard',
     56        esc_html__('Courier Check', 'checkoutguard'),
     57        esc_html__('Courier Check', 'checkoutguard'),
     58        'manage_woocommerce',
     59        'checkoutguard-courier-check',
     60        'checkoutguard_render_courier_check_page'
     61    );
    5262}
  • checkoutguard/tags/1.1.0/includes/enqueue.php

    r3388180 r3391483  
    4343    $is_main_dashboard = ($screen->id === 'dashboard');
    4444    $is_single_order_page = ($screen->id === 'shop_order' || ($screen->id === 'woocommerce_page_wc-orders' && ($_GET['action'] ?? '') === 'edit'));
     45    $is_courier_check_page = ($screen->id === 'checkoutguard_page_checkoutguard-courier-check');
    4546
    4647    if ($is_checkoutguard_page || $is_main_dashboard || $is_single_order_page) {
     
    7576        );
    7677    }
     78
     79    // Enqueue courier check assets on the courier check page
     80    if ($is_courier_check_page) {
     81        wp_enqueue_style(
     82            'checkoutguard-courier-check-styles',
     83            CHECKOUTGUARD_PLUGIN_URL . 'assets/css/courier-check.css',
     84            ['dashicons'],
     85            CHECKOUTGUARD_VERSION
     86        );
     87
     88        wp_enqueue_script(
     89            'checkoutguard-courier-check-script',
     90            CHECKOUTGUARD_PLUGIN_URL . 'assets/js/courier-check.js',
     91            ['jquery'],
     92            CHECKOUTGUARD_VERSION,
     93            true
     94        );
     95
     96        wp_localize_script(
     97            'checkoutguard-courier-check-script',
     98            'checkoutguardCourier',
     99            [
     100                'ajaxUrl' => admin_url('admin-ajax.php'),
     101                'nonce' => wp_create_nonce('checkoutguard_courier_check_nonce'),
     102                'noRecentSearches' => esc_html__('No recent searches', 'checkoutguard'),
     103                'pluginUrl' => CHECKOUTGUARD_PLUGIN_URL,
     104            ]
     105        );
     106    }
    77107}
  • checkoutguard/tags/1.1.0/readme.txt

    r3388187 r3391483  
    88WC tested up to: 8.9
    99Tested up to: 6.8.3
    10 Stable tag: 1.0.2
     10Stable tag: 1.1.0
    1111License: GPLv3 or later
    1212License URI: https://www.gnu.org/licenses/gpl-3.0.html
    1313
    14 Track and manage incomplete WooCommerce checkouts and protect your store with basic fraud prevention.
     14Track and manage incomplete WooCommerce checkouts, protect your store with fraud prevention, and check courier success rates.
    1515
    1616== Description ==
     
    2525
    2626* **Track Incomplete Checkouts:** Automatically capture customer name, email, phone, and cart details for checkouts that aren't completed.
     27* **Courier Success Rate Checker:** NEW! Check customer courier success rates across multiple courier services (Pathao, Steadfast, RedX) to assess delivery risk.
     28* **Local Caching System:** Smart 6-hour caching reduces API calls and improves performance.
    2729* **No Limits:** See a complete list of all incomplete checkouts with no limits on the amount of data you can store.
    2830* **Simple Fraud Blocker:** Protect your store by blocking specific phone numbers from placing orders. You can block an unlimited number of phone numbers.
     
    4648Yes, CheckoutGuard is an extension for WooCommerce and requires it to be installed and active.
    4749
     50= What is the Courier Check feature? =
     51The Courier Check feature allows you to verify a customer's courier success rate by checking their phone number against multiple courier services (Pathao, Steadfast, RedX). This helps you assess the risk of delivery failure before accepting an order.
     52
     53= How does the caching system work? =
     54When you check a phone number, the results are cached locally in your WordPress database for 6 hours. If you search for the same number within this period, the results are retrieved from the local cache instead of making a new API call. You can bypass the cache if you need fresh data.
     55
    4856= Where is the data stored? =
    49 All data collected by this plugin (incomplete checkouts, blocked phone numbers) is stored locally in your WordPress database.
     57All data collected by this plugin (incomplete checkouts, blocked phone numbers, courier search history) is stored locally in your WordPress database.
     58
     59= Can I delete the courier search history? =
     60Yes! You can delete individual search entries by clicking the trash icon on each item, or use the "Clear All" button to delete all search history at once.
    5061
    5162= Is there a premium version? =
    52 Yes, a Pro version with advanced features is available on our website. This free version provides fully functional checkout tracking and phone blocking.
     63Yes, a Pro version with advanced features is available on our website. This free version provides fully functional checkout tracking, phone blocking, and courier checking.
    5364
    5465== Screenshots ==
     
    57682.  The "Incomplete Checkouts" page showing all captured carts. (screenshot-2.png)
    58693.  The "Fraud Blocker" page where you can block unlimited phone numbers. (screenshot-3.png)
     704.  The "Courier Checker" page where you can check unlimited courier results. (screenshot-4.png)
    5971
    6072== Changelog ==
     73
     74= 1.1.0 =
     75* Feature: NEW Courier Check - Check customer courier success rates across multiple services (Pathao, Steadfast, RedX).
     76* Feature: Risk assessment system with 4 levels (Safe, Mid-safe, Risk, High Risk) based on courier performance.
     77* Feature: Local caching system (6-hour cache) reduces API server load and improves performance.
     78* Feature: Recent search history with individual delete option - track and manage your courier checks.
     79* Feature: "Clear All" button to delete all search history at once.
     80* Feature: Modern, animated UI with smooth transitions and interactive elements.
     81* Feature: Phone number validation for Bangladesh format.
     82* Feature: Detailed statistics including total orders, failed deliveries, and success rates.
     83* Feature: Cache indicators showing whether results are from local cache or API server.
     84* Enhancement: Improved admin interface styling with CSS3 animations and gradients.
     85* Enhancement: Better user feedback with loading states, error messages, and success notifications.
     86* Enhancement: Responsive design for mobile and tablet devices.
     87* Enhancement: Accessibility improvements with ARIA labels and focus states.
     88* Security: Nonce verification and capability checks for all AJAX operations.
     89* Security: Input sanitization and output escaping throughout.
     90* Tweak: Added new database table for courier search history.
     91* Tweak: Updated plugin description to include courier checking features.
    6192
    6293= 1.0.2 =
  • checkoutguard/trunk/checkoutguard.php

    r3388187 r3391483  
    33 * Plugin Name: CheckoutGuard
    44 * Plugin URI: https://coderzonebd.com/
    5  * Description: Tracks incomplete WooCommerce checkouts to help you understand cart abandonment. Includes a dashboard widget and basic fraud protection.
    6  * Version: 1.0.2
     5 * Description: Tracks incomplete WooCommerce checkouts to help you understand cart abandonment. Includes a dashboard widget, fraud protection, and courier success rate checking.
     6 * Version: 1.1.0
    77 * Requires at least: 5.6
    88 * Tested up to: 6.8.3
     
    3535
    3636// Define Core Plugin Constants
    37 define('CHECKOUTGUARD_VERSION', '1.0.1'); // Updated version
     37define('CHECKOUTGUARD_VERSION', '1.1.0'); // Updated version
    3838define('CHECKOUTGUARD_PLUGIN_DIR', plugin_dir_path(__FILE__));
    3939define('CHECKOUTGUARD_PLUGIN_URL', plugin_dir_url(__FILE__));
     
    4545require_once CHECKOUTGUARD_INC_DIR . 'utils.php';
    4646require_once CHECKOUTGUARD_ADMIN_DIR . 'admin-pages.php';
     47require_once CHECKOUTGUARD_ADMIN_DIR . 'courier-check-page.php';
     48require_once CHECKOUTGUARD_INC_DIR . 'courier-check-ajax.php';
    4749
    4850/**
     
    7981    add_action('wp_ajax_checkoutguard_delete_blocked_item', 'checkoutguard_handle_delete_blocked_item_ajax');
    8082
     83    // Courier check AJAX hooks
     84    add_action('wp_ajax_checkoutguard_courier_check', 'checkoutguard_handle_courier_check_ajax');
     85    add_action('wp_ajax_checkoutguard_get_recent_searches', 'checkoutguard_handle_get_recent_searches_ajax');
     86    add_action('wp_ajax_checkoutguard_delete_courier_search', 'checkoutguard_handle_delete_courier_search_ajax');
     87    add_action('wp_ajax_checkoutguard_clear_all_searches', 'checkoutguard_handle_clear_all_searches_ajax');
     88
    8189    // WooCommerce hooks
    8290    add_action('woocommerce_thankyou', 'checkoutguard_delete_incomplete_checkout_on_order_completion', 10, 1);
  • checkoutguard/trunk/includes/activation.php

    r3388180 r3391483  
    7171    dbDelta($sql_numbers);
    7272
     73    // 3. Courier Searches Table
     74    $table_courier_searches = $wpdb->prefix . 'checkoutguard_courier_searches';
     75    $sql_courier = "CREATE TABLE {$table_courier_searches} (
     76        id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
     77        phone_number VARCHAR(20) NOT NULL,
     78        total_deliveries INT(11) DEFAULT 0,
     79        successful_deliveries INT(11) DEFAULT 0,
     80        success_rate DECIMAL(5,2) DEFAULT 0.00,
     81        risk_level VARCHAR(50) DEFAULT 'N/A',
     82        searched_by BIGINT(20) UNSIGNED DEFAULT 0,
     83        searched_at DATETIME NOT NULL,
     84        results_json LONGTEXT,
     85        PRIMARY KEY (id),
     86        KEY phone_number (phone_number),
     87        KEY searched_at (searched_at)
     88    ) {$charset_collate};";
     89    dbDelta($sql_courier);
     90
    7391    update_option('checkoutguard_plugin_version', CHECKOUTGUARD_VERSION);
    7492}
  • checkoutguard/trunk/includes/admin/admin-menus.php

    r3388180 r3391483  
    5050        'checkoutguard_render_fraud_blocker_page'
    5151    );
     52
     53    // Sub-menu item for Courier Check
     54    add_submenu_page(
     55        'checkoutguard-dashboard',
     56        esc_html__('Courier Check', 'checkoutguard'),
     57        esc_html__('Courier Check', 'checkoutguard'),
     58        'manage_woocommerce',
     59        'checkoutguard-courier-check',
     60        'checkoutguard_render_courier_check_page'
     61    );
    5262}
  • checkoutguard/trunk/includes/enqueue.php

    r3388180 r3391483  
    4343    $is_main_dashboard = ($screen->id === 'dashboard');
    4444    $is_single_order_page = ($screen->id === 'shop_order' || ($screen->id === 'woocommerce_page_wc-orders' && ($_GET['action'] ?? '') === 'edit'));
     45    $is_courier_check_page = ($screen->id === 'checkoutguard_page_checkoutguard-courier-check');
    4546
    4647    if ($is_checkoutguard_page || $is_main_dashboard || $is_single_order_page) {
     
    7576        );
    7677    }
     78
     79    // Enqueue courier check assets on the courier check page
     80    if ($is_courier_check_page) {
     81        wp_enqueue_style(
     82            'checkoutguard-courier-check-styles',
     83            CHECKOUTGUARD_PLUGIN_URL . 'assets/css/courier-check.css',
     84            ['dashicons'],
     85            CHECKOUTGUARD_VERSION
     86        );
     87
     88        wp_enqueue_script(
     89            'checkoutguard-courier-check-script',
     90            CHECKOUTGUARD_PLUGIN_URL . 'assets/js/courier-check.js',
     91            ['jquery'],
     92            CHECKOUTGUARD_VERSION,
     93            true
     94        );
     95
     96        wp_localize_script(
     97            'checkoutguard-courier-check-script',
     98            'checkoutguardCourier',
     99            [
     100                'ajaxUrl' => admin_url('admin-ajax.php'),
     101                'nonce' => wp_create_nonce('checkoutguard_courier_check_nonce'),
     102                'noRecentSearches' => esc_html__('No recent searches', 'checkoutguard'),
     103                'pluginUrl' => CHECKOUTGUARD_PLUGIN_URL,
     104            ]
     105        );
     106    }
    77107}
  • checkoutguard/trunk/readme.txt

    r3388187 r3391483  
    88WC tested up to: 8.9
    99Tested up to: 6.8.3
    10 Stable tag: 1.0.2
     10Stable tag: 1.1.0
    1111License: GPLv3 or later
    1212License URI: https://www.gnu.org/licenses/gpl-3.0.html
    1313
    14 Track and manage incomplete WooCommerce checkouts and protect your store with basic fraud prevention.
     14Track and manage incomplete WooCommerce checkouts, protect your store with fraud prevention, and check courier success rates.
    1515
    1616== Description ==
     
    2525
    2626* **Track Incomplete Checkouts:** Automatically capture customer name, email, phone, and cart details for checkouts that aren't completed.
     27* **Courier Success Rate Checker:** NEW! Check customer courier success rates across multiple courier services (Pathao, Steadfast, RedX) to assess delivery risk.
     28* **Local Caching System:** Smart 6-hour caching reduces API calls and improves performance.
    2729* **No Limits:** See a complete list of all incomplete checkouts with no limits on the amount of data you can store.
    2830* **Simple Fraud Blocker:** Protect your store by blocking specific phone numbers from placing orders. You can block an unlimited number of phone numbers.
     
    4648Yes, CheckoutGuard is an extension for WooCommerce and requires it to be installed and active.
    4749
     50= What is the Courier Check feature? =
     51The Courier Check feature allows you to verify a customer's courier success rate by checking their phone number against multiple courier services (Pathao, Steadfast, RedX). This helps you assess the risk of delivery failure before accepting an order.
     52
     53= How does the caching system work? =
     54When you check a phone number, the results are cached locally in your WordPress database for 6 hours. If you search for the same number within this period, the results are retrieved from the local cache instead of making a new API call. You can bypass the cache if you need fresh data.
     55
    4856= Where is the data stored? =
    49 All data collected by this plugin (incomplete checkouts, blocked phone numbers) is stored locally in your WordPress database.
     57All data collected by this plugin (incomplete checkouts, blocked phone numbers, courier search history) is stored locally in your WordPress database.
     58
     59= Can I delete the courier search history? =
     60Yes! You can delete individual search entries by clicking the trash icon on each item, or use the "Clear All" button to delete all search history at once.
    5061
    5162= Is there a premium version? =
    52 Yes, a Pro version with advanced features is available on our website. This free version provides fully functional checkout tracking and phone blocking.
     63Yes, a Pro version with advanced features is available on our website. This free version provides fully functional checkout tracking, phone blocking, and courier checking.
    5364
    5465== Screenshots ==
     
    57682.  The "Incomplete Checkouts" page showing all captured carts. (screenshot-2.png)
    58693.  The "Fraud Blocker" page where you can block unlimited phone numbers. (screenshot-3.png)
     704.  The "Courier Checker" page where you can check unlimited courier results. (screenshot-4.png)
    5971
    6072== Changelog ==
     73
     74= 1.1.0 =
     75* Feature: NEW Courier Check - Check customer courier success rates across multiple services (Pathao, Steadfast, RedX).
     76* Feature: Risk assessment system with 4 levels (Safe, Mid-safe, Risk, High Risk) based on courier performance.
     77* Feature: Local caching system (6-hour cache) reduces API server load and improves performance.
     78* Feature: Recent search history with individual delete option - track and manage your courier checks.
     79* Feature: "Clear All" button to delete all search history at once.
     80* Feature: Modern, animated UI with smooth transitions and interactive elements.
     81* Feature: Phone number validation for Bangladesh format.
     82* Feature: Detailed statistics including total orders, failed deliveries, and success rates.
     83* Feature: Cache indicators showing whether results are from local cache or API server.
     84* Enhancement: Improved admin interface styling with CSS3 animations and gradients.
     85* Enhancement: Better user feedback with loading states, error messages, and success notifications.
     86* Enhancement: Responsive design for mobile and tablet devices.
     87* Enhancement: Accessibility improvements with ARIA labels and focus states.
     88* Security: Nonce verification and capability checks for all AJAX operations.
     89* Security: Input sanitization and output escaping throughout.
     90* Tweak: Added new database table for courier search history.
     91* Tweak: Updated plugin description to include courier checking features.
    6192
    6293= 1.0.2 =
Note: See TracChangeset for help on using the changeset viewer.