Changeset 3391483
- Timestamp:
- 11/06/2025 10:28:15 PM (5 months ago)
- Location:
- checkoutguard
- Files:
-
- 10 edited
- 1 copied
-
tags/1.1.0 (copied) (copied from checkoutguard/trunk)
-
tags/1.1.0/checkoutguard.php (modified) (4 diffs)
-
tags/1.1.0/includes/activation.php (modified) (1 diff)
-
tags/1.1.0/includes/admin/admin-menus.php (modified) (1 diff)
-
tags/1.1.0/includes/enqueue.php (modified) (2 diffs)
-
tags/1.1.0/readme.txt (modified) (4 diffs)
-
trunk/checkoutguard.php (modified) (4 diffs)
-
trunk/includes/activation.php (modified) (1 diff)
-
trunk/includes/admin/admin-menus.php (modified) (1 diff)
-
trunk/includes/enqueue.php (modified) (2 diffs)
-
trunk/readme.txt (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
checkoutguard/tags/1.1.0/checkoutguard.php
r3388187 r3391483 3 3 * Plugin Name: CheckoutGuard 4 4 * 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.25 * 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 7 7 * Requires at least: 5.6 8 8 * Tested up to: 6.8.3 … … 35 35 36 36 // Define Core Plugin Constants 37 define('CHECKOUTGUARD_VERSION', '1. 0.1'); // Updated version37 define('CHECKOUTGUARD_VERSION', '1.1.0'); // Updated version 38 38 define('CHECKOUTGUARD_PLUGIN_DIR', plugin_dir_path(__FILE__)); 39 39 define('CHECKOUTGUARD_PLUGIN_URL', plugin_dir_url(__FILE__)); … … 45 45 require_once CHECKOUTGUARD_INC_DIR . 'utils.php'; 46 46 require_once CHECKOUTGUARD_ADMIN_DIR . 'admin-pages.php'; 47 require_once CHECKOUTGUARD_ADMIN_DIR . 'courier-check-page.php'; 48 require_once CHECKOUTGUARD_INC_DIR . 'courier-check-ajax.php'; 47 49 48 50 /** … … 79 81 add_action('wp_ajax_checkoutguard_delete_blocked_item', 'checkoutguard_handle_delete_blocked_item_ajax'); 80 82 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 81 89 // WooCommerce hooks 82 90 add_action('woocommerce_thankyou', 'checkoutguard_delete_incomplete_checkout_on_order_completion', 10, 1); -
checkoutguard/tags/1.1.0/includes/activation.php
r3388180 r3391483 71 71 dbDelta($sql_numbers); 72 72 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 73 91 update_option('checkoutguard_plugin_version', CHECKOUTGUARD_VERSION); 74 92 } -
checkoutguard/tags/1.1.0/includes/admin/admin-menus.php
r3388180 r3391483 50 50 'checkoutguard_render_fraud_blocker_page' 51 51 ); 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 ); 52 62 } -
checkoutguard/tags/1.1.0/includes/enqueue.php
r3388180 r3391483 43 43 $is_main_dashboard = ($screen->id === 'dashboard'); 44 44 $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'); 45 46 46 47 if ($is_checkoutguard_page || $is_main_dashboard || $is_single_order_page) { … … 75 76 ); 76 77 } 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 } 77 107 } -
checkoutguard/tags/1.1.0/readme.txt
r3388187 r3391483 8 8 WC tested up to: 8.9 9 9 Tested up to: 6.8.3 10 Stable tag: 1. 0.210 Stable tag: 1.1.0 11 11 License: GPLv3 or later 12 12 License URI: https://www.gnu.org/licenses/gpl-3.0.html 13 13 14 Track and manage incomplete WooCommerce checkouts and protect your store with basic fraud prevention.14 Track and manage incomplete WooCommerce checkouts, protect your store with fraud prevention, and check courier success rates. 15 15 16 16 == Description == … … 25 25 26 26 * **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. 27 29 * **No Limits:** See a complete list of all incomplete checkouts with no limits on the amount of data you can store. 28 30 * **Simple Fraud Blocker:** Protect your store by blocking specific phone numbers from placing orders. You can block an unlimited number of phone numbers. … … 46 48 Yes, CheckoutGuard is an extension for WooCommerce and requires it to be installed and active. 47 49 50 = What is the Courier Check feature? = 51 The 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? = 54 When 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 48 56 = Where is the data stored? = 49 All data collected by this plugin (incomplete checkouts, blocked phone numbers) is stored locally in your WordPress database. 57 All 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? = 60 Yes! 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. 50 61 51 62 = 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.63 Yes, a Pro version with advanced features is available on our website. This free version provides fully functional checkout tracking, phone blocking, and courier checking. 53 64 54 65 == Screenshots == … … 57 68 2. The "Incomplete Checkouts" page showing all captured carts. (screenshot-2.png) 58 69 3. The "Fraud Blocker" page where you can block unlimited phone numbers. (screenshot-3.png) 70 4. The "Courier Checker" page where you can check unlimited courier results. (screenshot-4.png) 59 71 60 72 == 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. 61 92 62 93 = 1.0.2 = -
checkoutguard/trunk/checkoutguard.php
r3388187 r3391483 3 3 * Plugin Name: CheckoutGuard 4 4 * 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.25 * 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 7 7 * Requires at least: 5.6 8 8 * Tested up to: 6.8.3 … … 35 35 36 36 // Define Core Plugin Constants 37 define('CHECKOUTGUARD_VERSION', '1. 0.1'); // Updated version37 define('CHECKOUTGUARD_VERSION', '1.1.0'); // Updated version 38 38 define('CHECKOUTGUARD_PLUGIN_DIR', plugin_dir_path(__FILE__)); 39 39 define('CHECKOUTGUARD_PLUGIN_URL', plugin_dir_url(__FILE__)); … … 45 45 require_once CHECKOUTGUARD_INC_DIR . 'utils.php'; 46 46 require_once CHECKOUTGUARD_ADMIN_DIR . 'admin-pages.php'; 47 require_once CHECKOUTGUARD_ADMIN_DIR . 'courier-check-page.php'; 48 require_once CHECKOUTGUARD_INC_DIR . 'courier-check-ajax.php'; 47 49 48 50 /** … … 79 81 add_action('wp_ajax_checkoutguard_delete_blocked_item', 'checkoutguard_handle_delete_blocked_item_ajax'); 80 82 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 81 89 // WooCommerce hooks 82 90 add_action('woocommerce_thankyou', 'checkoutguard_delete_incomplete_checkout_on_order_completion', 10, 1); -
checkoutguard/trunk/includes/activation.php
r3388180 r3391483 71 71 dbDelta($sql_numbers); 72 72 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 73 91 update_option('checkoutguard_plugin_version', CHECKOUTGUARD_VERSION); 74 92 } -
checkoutguard/trunk/includes/admin/admin-menus.php
r3388180 r3391483 50 50 'checkoutguard_render_fraud_blocker_page' 51 51 ); 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 ); 52 62 } -
checkoutguard/trunk/includes/enqueue.php
r3388180 r3391483 43 43 $is_main_dashboard = ($screen->id === 'dashboard'); 44 44 $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'); 45 46 46 47 if ($is_checkoutguard_page || $is_main_dashboard || $is_single_order_page) { … … 75 76 ); 76 77 } 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 } 77 107 } -
checkoutguard/trunk/readme.txt
r3388187 r3391483 8 8 WC tested up to: 8.9 9 9 Tested up to: 6.8.3 10 Stable tag: 1. 0.210 Stable tag: 1.1.0 11 11 License: GPLv3 or later 12 12 License URI: https://www.gnu.org/licenses/gpl-3.0.html 13 13 14 Track and manage incomplete WooCommerce checkouts and protect your store with basic fraud prevention.14 Track and manage incomplete WooCommerce checkouts, protect your store with fraud prevention, and check courier success rates. 15 15 16 16 == Description == … … 25 25 26 26 * **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. 27 29 * **No Limits:** See a complete list of all incomplete checkouts with no limits on the amount of data you can store. 28 30 * **Simple Fraud Blocker:** Protect your store by blocking specific phone numbers from placing orders. You can block an unlimited number of phone numbers. … … 46 48 Yes, CheckoutGuard is an extension for WooCommerce and requires it to be installed and active. 47 49 50 = What is the Courier Check feature? = 51 The 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? = 54 When 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 48 56 = Where is the data stored? = 49 All data collected by this plugin (incomplete checkouts, blocked phone numbers) is stored locally in your WordPress database. 57 All 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? = 60 Yes! 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. 50 61 51 62 = 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.63 Yes, a Pro version with advanced features is available on our website. This free version provides fully functional checkout tracking, phone blocking, and courier checking. 53 64 54 65 == Screenshots == … … 57 68 2. The "Incomplete Checkouts" page showing all captured carts. (screenshot-2.png) 58 69 3. The "Fraud Blocker" page where you can block unlimited phone numbers. (screenshot-3.png) 70 4. The "Courier Checker" page where you can check unlimited courier results. (screenshot-4.png) 59 71 60 72 == 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. 61 92 62 93 = 1.0.2 =
Note: See TracChangeset
for help on using the changeset viewer.