Changeset 3303095
- Timestamp:
- 05/29/2025 04:11:23 PM (10 months ago)
- Location:
- asm-manager
- Files:
-
- 30 added
- 9 edited
-
tags/1.3.2/readme.txt (modified) (1 diff)
-
tags/1.4 (added)
-
tags/1.4/asmplsww-settings.php (added)
-
tags/1.4/asmplsww.php (added)
-
tags/1.4/assets (added)
-
tags/1.4/assets/css (added)
-
tags/1.4/assets/css/asm-admin.css (added)
-
tags/1.4/assets/css/asm.css (added)
-
tags/1.4/assets/js (added)
-
tags/1.4/assets/js/asm-admin.js (added)
-
tags/1.4/assets/js/asm-script.js (added)
-
tags/1.4/changelog.txt (added)
-
tags/1.4/includes (added)
-
tags/1.4/includes/asmplsww_admin_field.php (added)
-
tags/1.4/includes/asmplsww_product_field.php (added)
-
tags/1.4/includes/asmplsww_query_live.php (added)
-
tags/1.4/includes/asmplsww_shipping_api.php (added)
-
tags/1.4/includes/asmplsww_shipping_method.php (added)
-
tags/1.4/includes/asmplsww_shipping_method_declear.php (added)
-
tags/1.4/includes/asmplsww_xml_data.php (added)
-
tags/1.4/readme.txt (added)
-
trunk/asmplsww-settings.php (added)
-
trunk/asmplsww.php (modified) (1 diff)
-
trunk/assets (added)
-
trunk/assets/css (added)
-
trunk/assets/css/asm-admin.css (added)
-
trunk/assets/css/asm.css (added)
-
trunk/assets/js (added)
-
trunk/assets/js/asm-admin.js (added)
-
trunk/assets/js/asm-script.js (added)
-
trunk/changelog.txt (modified) (1 diff)
-
trunk/includes/asmplsww_admin_field.php (modified) (2 diffs)
-
trunk/includes/asmplsww_product_field.php (modified) (2 diffs)
-
trunk/includes/asmplsww_query_live.php (modified) (3 diffs)
-
trunk/includes/asmplsww_shipping_api.php (modified) (2 diffs)
-
trunk/includes/asmplsww_shipping_method.php (modified) (1 diff)
-
trunk/includes/asmplsww_shipping_method_declear.php (added)
-
trunk/includes/asmplsww_xml_data.php (added)
-
trunk/readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
asm-manager/tags/1.3.2/readme.txt
r3282853 r3303095 4 4 Requires at least: 6.0 5 5 Tested up to: 6.8 6 Stable tag: 1.3 6 Stable tag: 1.3.2 7 7 Requires PHP: 5.2.4 8 8 License: GPLv2 or later -
asm-manager/trunk/asmplsww.php
r3282853 r3303095 6 6 Author: ASM 7 7 Developer: ASM 8 Version: 1. 3.28 Version: 1.4 9 9 WC requires at least: 7.0.0 10 10 WC tested up to: 9.8 11 11 Author URI: https://www.advancedshippingmanager.com 12 Text Domain: asmplsww 12 13 */ 13 14 14 if (!defined('ABSPATH')) { 15 exit; // Exit if accessed directly 15 16 if (!defined('ABSPATH')) exit; 17 define('ASMPLSWW_VERSION', '1.4.0'); // Version tracking 18 define('ASMPLSWW', "https://www.advancedshippingmanager.com"); 19 define('ASMPLSWWSERVICE', ASMPLSWW."/clients/web_services/asm_web_service.php"); 20 define('ASMPLSWWCLIENT', ASMPLSWW."/clients/admin/index.php"); 21 22 23 // Check for outdated installs or first-time upgrades from older versions 24 add_action('plugins_loaded', 'asmplsww_enforce_version'); 25 function asmplsww_enforce_version() { 26 $stored_version = get_option('asm_version'); 27 28 if (!$stored_version) { 29 // User came from v1.3 or earlier (no version info) 30 add_action('admin_notices', 'asmplsww_force_update_notice'); 31 // Optional: disable core plugin functionality here 32 add_filter('option_active_plugins', function($plugins) { 33 deactivate_plugins(plugin_basename(__FILE__)); 34 return $plugins; 35 }); 36 return; 37 } 38 39 if (version_compare($stored_version, ASMPLSWW_VERSION, '<')) { 40 update_option('asm_version', ASMPLSWW_VERSION); 41 } 16 42 } 17 43 18 if (in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_option('active_plugins')))) { 44 function asmplsww_force_update_notice() { 45 echo '<div class="notice notice-error"><p><strong>IMPORTANT!</strong> This version requires an update in our database for existing stores. Please contact us BEFORE updating it at 888-546-4932.</p></div>'; 46 } 19 47 20 if (!class_exists('ASMPLSWW_Admin')) { 21 include_once 'includes/asmplsww_admin_field.php'; 48 // Set version on activation 49 register_activation_hook(__FILE__, ['Aadvance_Shipping_Plugin', 'asmplsww_set_plugin_version_on_activation']); 50 51 52 53 54 require_once plugin_dir_path(__FILE__) . 'asmplsww-settings.php'; 55 56 // Register plugin activation and deactivation hooks 57 register_activation_hook(__FILE__, ["ASM_Store_Creator", 'asm_plugin_activation']); 58 register_deactivation_hook(__FILE__, ["ASM_Store_Creator", 'asm_plugin_deactivation']); 59 60 61 class Aadvance_Shipping_Plugin { 62 63 public function __construct() { 64 add_action('admin_init', array($this, 'runtime_check_woocommerce')); 65 66 add_action('before_woocommerce_init', function() { 67 if (class_exists(\Automattic\WooCommerce\Utilities\FeaturesUtil::class)) { 68 \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 69 'custom_order_tables', 70 __FILE__, 71 true 72 ); 73 } 74 }); 75 76 include_once plugin_dir_path(__FILE__) . 'includes/asmplsww_shipping_method_declear.php'; 77 add_action('admin_enqueue_scripts', [$this, 'asm_enqueue_assets']); 78 add_action('wp_enqueue_scripts', [$this, 'asm_enqueue_plugin_scripts']); 79 add_action('wp_ajax_submit_deactivation_feedback', [$this, 'submit_deactivation_feedback']); 22 80 } 23 81 24 // Asm Shipping Method Loading 25 if (!class_exists('ASMPLSWW_Shipping_Method')) { 26 include_once 'includes/asmplsww_shipping_method.php'; 82 public function asm_enqueue_assets($hook) { 83 if ($this->asm_is_shipping_settings_page()) { 84 wp_enqueue_style('asm-css', plugin_dir_url(__FILE__) . 'assets/css/asm.css', [], '1.0'); 85 } 86 // new add 87 // if ($hook !== 'plugins.php') 88 // return; 89 90 wp_enqueue_style('asm-admin', plugin_dir_url(__FILE__) . 'assets/css/asm-admin.css', [], '1.0'); 91 wp_enqueue_script('asm_admin_script',plugin_dir_url(__FILE__) . 'assets/js/asm-admin.js',['jquery'],'1.0.0',true); 92 wp_localize_script('asm_admin_script', 'asm_vars', ['ajax_url'=> admin_url('admin-ajax.php'),'plugin_slug' => plugin_basename(__FILE__)]); 93 // new add 94 95 } 96 public function asm_enqueue_plugin_scripts() { 97 // Enqueue your custom JS 98 wp_enqueue_script('asm_plugin_script',plugin_dir_url(__FILE__) . 'assets/js/asm-script.js',['jquery'],'1.0.0',true); 99 // Localize your PHP data 100 wp_localize_script('asm_plugin_script', 'asm_vars', ['ajax_url'=> admin_url('admin-ajax.php'),'nonce'=> wp_create_nonce('asm_nonce'),'some_message' => __('Shipping updated!', 'asm'),]); 27 101 } 28 102 29 add_action('woocommerce_shipping_init', 'asmplsww_shipping_method_init'); 30 31 function asmplsww_shipping_method_add($methods) 32 { 33 $methods['asmplsww'] = 'ASMPLSWW_Shipping_Method'; 34 return $methods; 103 private function asm_is_shipping_settings_page() { 104 return isset($_GET['page']) && $_GET['page'] === 'shipping-settings'; 35 105 } 36 106 37 add_filter('woocommerce_shipping_methods', 'asmplsww_shipping_method_add'); 107 108 public static function activation_check_static() { 109 $plugin = new self(); 110 $plugin->activation_check(); 111 } 38 112 39 add_action( 'before_woocommerce_init', function() { 40 if ( class_exists( \Automattic\WooCommerce\Utilities\FeaturesUtil::class ) ) { 41 \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', __FILE__, true ); 42 } 43 }); 113 public function activation_check() { 114 if (!$this->is_woocommerce_active()) { 115 deactivate_plugins(plugin_basename(__FILE__)); 116 wp_die('This plugin requires WooCommerce to be installed and active.', 'Plugin dependency check', ['back_link' => true]); 117 } 118 } 44 119 120 public function runtime_check_woocommerce() { 121 if (!$this->is_woocommerce_active()) { 122 deactivate_plugins(plugin_basename(__FILE__)); 123 add_action('admin_notices', [$this, 'show_wc_required_notice']); 124 } 125 } 126 127 public function show_wc_required_notice() { 128 echo '<div class="notice notice-error is-dismissible"><p><strong>Advanced Shipping Manager</strong> has been deactivated because WooCommerce is not active.</p></div>'; 129 } 130 131 private function is_woocommerce_active() { 132 include_once(ABSPATH . 'wp-admin/includes/plugin.php'); 133 return is_plugin_active('woocommerce/woocommerce.php') || class_exists('WooCommerce'); 134 } 135 136 public function submit_deactivation_feedback() { 137 if (!current_user_can('activate_plugins')) { 138 wp_send_json_error('Unauthorized', 403); 139 } 140 $reasons = []; 141 142 if ( isset( $_POST['reasons'] ) && is_array( $_POST['reasons'] ) ) { 143 $reasons = array_map( 'sanitize_text_field', wp_unslash( $_POST['reasons'] ) ); 144 } 145 146 $domain = home_url(); // Gets the site URL 147 $user = wp_get_current_user(); 148 149 // Format email 150 $to = 'support@advancedshippingmanager.com'; 151 $subject = 'Plugin Deactivation Feedback'; 152 $body = "ASM plugin was deactivated on: {$domain}\n\n"; 153 $body .= "Deactivated by: {$user->user_email}\n\n"; 154 $body .= "Reason(s):\n" . implode("\n", array_map('sanitize_text_field', $reasons)); 155 156 $headers = ['Content-Type: text/plain; charset=UTF-8']; 157 158 // Send the email 159 wp_mail($to, $subject, $body, $headers); 160 161 wp_send_json_success('Feedback sent successfully.'); 162 wp_die(); 163 } 164 165 public static function asmplsww_set_plugin_version_on_activation() { 166 update_option('asm_version', ASMPLSWW_VERSION); 167 } 45 168 } 169 170 // Initialize plugin 171 new Aadvance_Shipping_Plugin(); -
asm-manager/trunk/changelog.txt
r3282853 r3303095 1 1 == Changelog == 2 = 1.4.0 = 3 * MAJOR UPDATE! 4 * Embedded admin access 5 * Export/Import functionality added. 6 * Performance improvements 7 2 8 = 1.3.2 = 3 9 * Tax Connector fix -
asm-manager/trunk/includes/asmplsww_admin_field.php
r3282853 r3303095 2 2 /** 3 3 * @package Asm_Admin_Field 4 * @version 1. 3.24 * @version 1.4 5 5 */ 6 6 … … 11 11 { 12 12 /** Hook callback function to Add Tab in Product option section */ 13 add_filter('woocommerce_product_data_tabs', 'asmplsww_admin_tab_add'); 14 function asmplsww_admin_tab_add($product_data_tabs) 15 { 16 $product_data_tabs['asmplsww-custom-tab'] = array( 17 'label' => __('Advanced Shipping Manager', 'asmplsww_text_domain'), 18 'target' => 'asmplsww_custom_product_data', 19 ); 20 return $product_data_tabs; 13 add_filter('woocommerce_product_data_tabs', [$this, 'asmplsww_admin_tab_add']); 14 15 /** Hook callback function to Add custom fields information */ 16 add_action('woocommerce_product_data_panels', [$this, 'asmplsww_admin_fields_add']); 17 18 add_action('woocommerce_process_product_meta', [$this, 'asmplsww_admin_fields_save']); 19 20 } 21 22 function asmplsww_admin_tab_add($product_data_tabs) 23 { 24 $product_data_tabs['asmplsww-custom-tab'] = array( 25 'label' => __('Advanced Shipping Manager', 'asmplsww'), 26 'target' => 'asmplsww_custom_product_data', 27 ); 28 return $product_data_tabs; 29 } 30 31 function asmplsww_admin_fields_add() 32 { 33 global $woocommerce, $post; 34 35 // id below must match target registered in above add_my_custom_product_data_tab function 36 echo "<div id=\"asmplsww_custom_product_data\" class=\"panel woocommerce_options_panel\">"; 37 woocommerce_wp_text_input( 38 array( 39 'id' => 'asmplsww_dimensions', 40 'label' => __('Dimensions', 'asmplsww'), 41 'desc_tip' => 'true', 42 'description' => __('Enter the Dimension of package.', 'asmplsww') 43 ) 44 ); 45 46 $checked_free_shipping = ''; 47 $asmplsww_free_shipping = get_post_meta($post->ID, 'asmplsww_free_shipping', true); 48 if ($asmplsww_free_shipping == 1) { 49 $checked_free_shipping = "checked=checked"; 21 50 } 22 23 /** Hook callback function to Add custom fields information */ 24 add_action('woocommerce_product_data_panels', 'asmplsww_admin_fields_add'); 25 function asmplsww_admin_fields_add() 26 { 27 global $woocommerce, $post; 28 29 // id below must match target registered in above add_my_custom_product_data_tab function 30 echo "<div id=\"asmplsww_custom_product_data\" class=\"panel woocommerce_options_panel\">"; 31 woocommerce_wp_text_input( 32 array( 33 'id' => 'asmplsww_dimensions', 34 'label' => __('Dimensions', 'as_dimensions'), 35 'desc_tip' => 'true', 36 'description' => __('Enter the Dimension of package.', 'woocommerce') 37 ) 38 ); 39 40 $checked_free_shipping = ''; 41 $asmplsww_free_shipping = get_post_meta($post->ID, 'asmplsww_free_shipping', true); 42 if ($asmplsww_free_shipping == 1) { 43 $checked_free_shipping = "checked=checked"; 44 } 45 echo "<p class=\"form-field asmplsww_free_shipping \"><label>Free Shipping</label>"; 46 echo "<input type=\"checkbox\" id=\"asmplsww_free_shipping\" name=\"asmplsww_free_shipping\" value=\"1\" $checked_free_shipping>"; 47 48 woocommerce_wp_text_input( 49 array( 50 'id' => 'asmplsww_free_shipping_method', 51 'label' => __('Free Shipping Method', 'asm_free_shipping_method'), 52 'desc_tip' => 'true', 53 'description' => __('Enter Free Shipping Method', 'woocommerce') 54 ) 55 ); 56 57 $asmplsww_ship_alone_checked = ''; 58 $asmplsww_ship_alone = get_post_meta($post->ID, 'asmplsww_ship_alone', true); 59 if ($asmplsww_ship_alone == 1) { 60 $asmplsww_ship_alone_checked = "checked=checked"; 61 } 62 echo "<p class=\"form-field asmplsww_ship_alone \"><label>Ship Alone</label>"; 63 echo "<input type=\"checkbox\" id=\"asmplsww_ship_alone\" name=\"asmplsww_ship_alone\" value=\"1\" $asmplsww_ship_alone_checked>"; 64 65 woocommerce_wp_textarea_input( 66 array( 67 'id' => 'asmplsww_flat_ship_rates', 68 'label' => __('Flat Ship Rates', 'asm_flat_ship_rates'), 69 'desc_tip' => 'true', 70 'description' => __('Enter Flat Ship Rates', 'woocommerce') 71 ) 72 ); 73 74 woocommerce_wp_text_input( 75 array( 76 'id' => 'asmplsww_origin_zip', 77 'label' => __('Origin Zip', 'asm_origin_zip'), 78 'desc_tip' => 'true', 79 'description' => __('Enter Origin Zip', 'woocommerce') 80 ) 81 ); 82 83 woocommerce_wp_text_input( 84 array( 85 'id' => 'asmplsww_addons_number_boxes', 86 'label' => __('Number of Boxes', 'asmplsww_addons_number_boxes'), 87 'desc_tip' => 'true', 88 'description' => __('Enter Number of Boxes', 'woocommerce') 89 ) 90 ); 91 92 woocommerce_wp_text_input( 93 array( 94 'id' => 'asmplsww_multi_box_weight', 95 'label' => __('Multi Box Weights', 'asm_multi_box_weight'), 96 'desc_tip' => 'true', 97 'description' => __('Enter Multi Box Weights', 'woocommerce') 98 ) 99 ); 100 101 woocommerce_wp_textarea_input( 102 array( 103 'id' => 'asmplsww_multi_box_dimensions', 104 'label' => __('Multi Box Dimensions', 'asm_multi_box_dimensions'), 105 'desc_tip' => 'true', 106 'description' => __('Enter Multi Box Dimensions', 'woocommerce') 107 ) 108 ); 109 110 woocommerce_wp_text_input( 111 array( 112 'id' => 'asmplsww_invalid_ship_methods', 113 'label' => __('Invalid Ship Methods', 'asm_invalid_ship_methods'), 114 'desc_tip' => 'true', 115 'description' => __('Enter Invalid Ship Methods', 'woocommerce') 116 ) 117 ); 118 119 woocommerce_wp_text_input( 120 array( 121 'id' => 'asmplsww_markup', 122 'label' => __('Markup', 'asm_markup'), 123 'desc_tip' => 'true', 124 'description' => __('Enter Markup', 'woocommerce') 125 ) 126 ); 127 128 $asmplsww_global_free_ship_exclusion_checked = ''; 129 $asmplsww_global_free_ship_exclusion = get_post_meta($post->ID, 'asmplsww_global_free_ship_exclusion', true); 130 if ($asmplsww_global_free_ship_exclusion == 1) { 131 $asmplsww_global_free_ship_exclusion_checked = "checked=checked"; 132 } 133 echo "<p class=\"form-field asm_global_free_ship_exclusion \"><label>Global Free Ship Exclusion</label>"; 134 echo "<input type=\"checkbox\" id=\"asmplsww_global_free_ship_exclusion\" name=\"asmplsww_global_free_ship_exclusion\" value=\"1\" $asmplsww_global_free_ship_exclusion_checked>"; 135 136 woocommerce_wp_textarea_input( 137 array( 138 'id' => 'asmplsww_exclude_state', 139 'label' => __('Exclude States', 'asm_exclude_state'), 140 'desc_tip' => 'true', 141 'description' => __('Enter Exclude States', 'woocommerce') 142 ) 143 ); 144 145 woocommerce_wp_textarea_input( 146 array( 147 'id' => 'asmplsww_exclude_countries', 148 'label' => __('Exclude Countries', 'asm_exclude_countries'), 149 'desc_tip' => 'true', 150 'description' => __('Enter Exclude Countries', 'woocommerce') 151 ) 152 ); 153 154 echo "<h1 style='padding-left:10px;border-bottom: 1px solid #ccc;'>Optional Add-Ons</h1>"; 155 156 woocommerce_wp_text_input( 157 array( 158 'id' => 'asmplsww_addons_item_points', 159 'label' => __('Item Points', 'asm_addons_item_points'), 160 'desc_tip' => 'true', 161 'description' => __('Enter Item Points', 'woocommerce') 162 ) 163 ); 164 165 woocommerce_wp_text_input( 166 array( 167 'id' => 'asmplsww_addons_multi_box_points', 168 'label' => __('Multi Box Points', 'asmplsww_addons_multi_box_points'), 169 'desc_tip' => 'true', 170 'description' => __('Enter Item Points', 'woocommerce') 171 ) 172 ); 173 174 woocommerce_wp_text_input( 175 array( 176 'id' => 'asmplsww_addons_bundled_qty', 177 'label' => __('Bundled Quantity', 'asmplsww_addons_bundled_qty'), 178 'desc_tip' => 'true', 179 'description' => __('Enter Bundled Qty', 'woocommerce') 180 ) 181 ); 182 183 woocommerce_wp_text_input( 184 array( 185 'id' => 'asmplsww_addons_bundled_weight', 186 'label' => __('Bundled Weight', 'asmplsww_addons_bundled_weight'), 187 'desc_tip' => 'true', 188 'description' => __('Enter Bundled Weight', 'woocommerce') 189 ) 190 ); 191 192 woocommerce_wp_text_input( 193 array( 194 'id' => 'asmplsww_addons_bundled_dimension', 195 'label' => __('Bundled Dimensions', 'asmplsww_addons_bundled_dimension'), 196 'desc_tip' => 'true', 197 'description' => __('Enter Bundled Dimension', 'woocommerce') 198 ) 199 ); 200 201 woocommerce_wp_text_input( 202 array( 203 'id' => 'asmplsww_addons_bundled_points', 204 'label' => __('Bundled Points', 'asmplsww_addons_bundled_points'), 205 'desc_tip' => 'true', 206 'description' => __('Enter Bundled Points', 'woocommerce') 207 ) 208 ); 209 210 woocommerce_wp_text_input( 211 array( 212 'id' => 'asmplsww_addons_process_time', 213 'label' => __('Processing Time', 'asmplsww_addons_process'), 214 'desc_tip' => 'true', 215 'description' => __('Enter Process Time', 'woocommerce') 216 ) 217 ); 218 219 $asmplsww_addons_hazmat_checked = ''; 220 $asmplsww_addons_hazmat = get_post_meta($post->ID, 'asmplsww_addons_hazmat', true); 221 if ($asmplsww_addons_hazmat == 1) { 222 $asmplsww_addons_hazmat_checked = "checked=checked"; 223 } 224 echo "<p class=\"form-field asm_global_free_ship_exclusion \"><label>Hazmat</label>"; 225 echo "<input type=\"checkbox\" id=\"asmplsww_addons_hazmat\" name=\"asmplsww_addons_hazmat\" value=\"1\" $asmplsww_addons_hazmat_checked>"; 226 227 woocommerce_wp_textarea_input( 228 array( 229 'id' => 'asmplsww_addons_options_weight_points', 230 'label' => __('Option Weight Points', 'asmplsww_addons_options_weight_points'), 231 'desc_tip' => 'true', 232 'description' => __('Enter Option Weight Points', 'woocommerce') 233 ) 234 ); 235 236 237 echo "</div>"; 238 239 51 echo "<p class=\"form-field asmplsww_free_shipping \"><label>Free Shipping</label>"; 52 echo "<input type=\"checkbox\" id=\"asmplsww_free_shipping\" name=\"asmplsww_free_shipping\" value=\"1\" $checked_free_shipping>"; 53 54 woocommerce_wp_text_input( 55 array( 56 'id' => 'asmplsww_free_shipping_method', 57 'label' => __('Free Shipping Method', 'asmplsww'), 58 'desc_tip' => 'true', 59 'description' => __('Enter Free Shipping Method', 'asmplsww') 60 ) 61 ); 62 63 $asmplsww_ship_alone_checked = ''; 64 $asmplsww_ship_alone = get_post_meta($post->ID, 'asmplsww_ship_alone', true); 65 if ($asmplsww_ship_alone == 1) { 66 $asmplsww_ship_alone_checked = "checked=checked"; 240 67 } 241 242 /** Hook callback function to save custom fields information */ 243 function asmplsww_admin_fields_save($post_id) 244 { 245 246 // Save Text Field 247 $asmplsww_dimensions = $_POST['asmplsww_dimensions']; 248 update_post_meta($post_id, 'asmplsww_dimensions', sanitize_text_field($asmplsww_dimensions)); 249 250 // Save Checkbox 251 $asmplsww_free_shipping = isset($_POST['asmplsww_free_shipping']) ? true : false; 252 update_post_meta($post_id, 'asmplsww_free_shipping', $asmplsww_free_shipping); 253 254 // Save Hidden field 255 $asmplsww_free_shipping_method = $_POST['asmplsww_free_shipping_method']; 256 update_post_meta($post_id, 'asmplsww_free_shipping_method', sanitize_text_field($asmplsww_free_shipping_method)); 257 258 $asmplsww_ship_alone = isset($_POST['asmplsww_ship_alone']) ? true : false; 259 update_post_meta($post_id, 'asmplsww_ship_alone', $asmplsww_ship_alone); 260 261 $asmplsww_flat_ship_rates = $_POST['asmplsww_flat_ship_rates']; 262 update_post_meta($post_id, 'asmplsww_flat_ship_rates', sanitize_textarea_field($asmplsww_flat_ship_rates)); 263 264 $asmplsww_origin_zip = $_POST['asmplsww_origin_zip']; 265 update_post_meta($post_id, 'asmplsww_origin_zip', sanitize_text_field($asmplsww_origin_zip)); 266 267 $asmplsww_multi_box_weight = $_POST['asmplsww_multi_box_weight']; 268 update_post_meta($post_id, 'asmplsww_multi_box_weight', sanitize_text_field($asmplsww_multi_box_weight)); 269 270 $asmplsww_multi_box_dimensions = $_POST['asmplsww_multi_box_dimensions']; 271 update_post_meta($post_id, 'asmplsww_multi_box_dimensions', sanitize_text_field($asmplsww_multi_box_dimensions)); 272 273 $asmplsww_invalid_ship_methods = $_POST['asmplsww_invalid_ship_methods']; 274 update_post_meta($post_id, 'asmplsww_invalid_ship_methods', sanitize_text_field($asmplsww_invalid_ship_methods)); 275 276 $asmplsww_markup = $_POST['asmplsww_markup']; 277 update_post_meta($post_id, 'asmplsww_markup', sanitize_text_field($asmplsww_markup)); 278 279 $asmplsww_global_free_ship_exclusion = isset($_POST['asmplsww_global_free_ship_exclusion']) ? true : false; 280 update_post_meta($post_id, 'asmplsww_global_free_ship_exclusion', $asmplsww_global_free_ship_exclusion); 281 282 $asmplsww_exclude_state = $_POST['asmplsww_exclude_state']; 283 update_post_meta($post_id, 'asmplsww_exclude_state', sanitize_textarea_field($asmplsww_exclude_state)); 284 285 $asmplsww_exclude_countries = $_POST['asmplsww_exclude_countries']; 286 update_post_meta($post_id, 'asmplsww_exclude_countries', sanitize_textarea_field($asmplsww_exclude_countries)); 287 288 $asmplsww_addons_number_boxes = $_POST['asmplsww_addons_number_boxes']; 289 update_post_meta($post_id, 'asmplsww_addons_number_boxes', sanitize_text_field($asmplsww_addons_number_boxes)); 290 291 $asmplsww_addons_item_points = $_POST['asmplsww_addons_item_points']; 292 update_post_meta($post_id, 'asmplsww_addons_item_points', sanitize_text_field($asmplsww_addons_item_points)); 293 294 $asmplsww_addons_multi_box_points = $_POST['asmplsww_addons_multi_box_points']; 295 update_post_meta($post_id, 'asmplsww_addons_multi_box_points', sanitize_text_field($asmplsww_addons_multi_box_points)); 296 297 $asmplsww_addons_bundled_qty = $_POST['asmplsww_addons_bundled_qty']; 298 update_post_meta($post_id, 'asmplsww_addons_bundled_qty', sanitize_text_field($asmplsww_addons_bundled_qty)); 299 300 $asmplsww_addons_bundled_weight = $_POST['asmplsww_addons_bundled_weight']; 301 update_post_meta($post_id, 'asmplsww_addons_bundled_weight', sanitize_text_field($asmplsww_addons_bundled_weight)); 302 303 $asmplsww_addons_bundled_dimension = $_POST['asmplsww_addons_bundled_dimension']; 304 update_post_meta($post_id, 'asmplsww_addons_bundled_dimension', sanitize_text_field($asmplsww_addons_bundled_dimension)); 305 306 $asmplsww_addons_bundled_points = $_POST['asmplsww_addons_bundled_points']; 307 update_post_meta($post_id, 'asmplsww_addons_bundled_points', sanitize_text_field($asmplsww_addons_bundled_points)); 308 309 $asmplsww_addons_process_time = $_POST['asmplsww_addons_process_time']; 310 update_post_meta($post_id, 'asmplsww_addons_process_time', sanitize_text_field($asmplsww_addons_process_time)); 311 312 $asmplsww_addons_hazmat = isset($_POST['asmplsww_addons_hazmat']) ? true : false; 313 update_post_meta($post_id, 'asmplsww_addons_hazmat', $asmplsww_addons_hazmat); 314 315 $asmplsww_addons_options_weight_points = $_POST['asmplsww_addons_options_weight_points']; 316 update_post_meta($post_id, 'asmplsww_addons_options_weight_points', sanitize_textarea_field($asmplsww_addons_options_weight_points)); 317 318 68 echo "<p class=\"form-field asmplsww_ship_alone \"><label>Ship Alone</label>"; 69 echo "<input type=\"checkbox\" id=\"asmplsww_ship_alone\" name=\"asmplsww_ship_alone\" value=\"1\" $asmplsww_ship_alone_checked>"; 70 71 woocommerce_wp_textarea_input( 72 array( 73 'id' => 'asmplsww_flat_ship_rates', 74 'label' => __('Flat Ship Rates', 'asm_flat_ship_rates'), 75 'desc_tip' => 'true', 76 'description' => __('Enter Flat Ship Rates', 'asmplsww') 77 ) 78 ); 79 80 woocommerce_wp_text_input( 81 array( 82 'id' => 'asmplsww_origin_zip', 83 'label' => __('Origin Zip', 'asm_origin_zip'), 84 'desc_tip' => 'true', 85 'description' => __('Enter Origin Zip', 'asmplsww') 86 ) 87 ); 88 89 woocommerce_wp_text_input( 90 array( 91 'id' => 'asmplsww_addons_number_boxes', 92 'label' => __('Number of Boxes', 'asmplsww_addons_number_boxes'), 93 'desc_tip' => 'true', 94 'description' => __('Enter Number of Boxes', 'asmplsww') 95 ) 96 ); 97 98 woocommerce_wp_text_input( 99 array( 100 'id' => 'asmplsww_multi_box_weight', 101 'label' => __('Multi Box Weights', 'asm_multi_box_weight'), 102 'desc_tip' => 'true', 103 'description' => __('Enter Multi Box Weights', 'asmplsww') 104 ) 105 ); 106 107 woocommerce_wp_textarea_input( 108 array( 109 'id' => 'asmplsww_multi_box_dimensions', 110 'label' => __('Multi Box Dimensions', 'asmplsww'), 111 'desc_tip' => 'true', 112 'description' => __('Enter Multi Box Dimensions', 'asmplsww') 113 ) 114 ); 115 116 woocommerce_wp_text_input( 117 array( 118 'id' => 'asmplsww_invalid_ship_methods', 119 'label' => __('Invalid Ship Methods', 'asmplsww'), 120 'desc_tip' => 'true', 121 'description' => __('Enter Invalid Ship Methods', 'asmplsww') 122 ) 123 ); 124 125 woocommerce_wp_text_input( 126 array( 127 'id' => 'asmplsww_markup', 128 'label' => __('Markup', 'asmplsww'), 129 'desc_tip' => 'true', 130 'description' => __('Enter Markup', 'asmplsww') 131 ) 132 ); 133 134 $asmplsww_global_free_ship_exclusion_checked = ''; 135 $asmplsww_global_free_ship_exclusion = get_post_meta($post->ID, 'asmplsww_global_free_ship_exclusion', true); 136 if ($asmplsww_global_free_ship_exclusion == 1) { 137 $asmplsww_global_free_ship_exclusion_checked = "checked=checked"; 319 138 } 320 321 add_action('woocommerce_process_product_meta', 'asmplsww_admin_fields_save'); 322 139 echo "<p class=\"form-field asm_global_free_ship_exclusion \"><label>Global Free Ship Exclusion</label>"; 140 echo "<input type=\"checkbox\" id=\"asmplsww_global_free_ship_exclusion\" name=\"asmplsww_global_free_ship_exclusion\" value=\"1\" $asmplsww_global_free_ship_exclusion_checked>"; 141 142 woocommerce_wp_textarea_input( 143 array( 144 'id' => 'asmplsww_exclude_state', 145 'label' => __('Exclude States', 'asmplsww'), 146 'desc_tip' => 'true', 147 'description' => __('Enter Exclude States', 'asmplsww') 148 ) 149 ); 150 151 woocommerce_wp_textarea_input( 152 array( 153 'id' => 'asmplsww_exclude_countries', 154 'label' => __('Exclude Countries', 'asmplsww'), 155 'desc_tip' => 'true', 156 'description' => __('Enter Exclude Countries', 'asmplsww') 157 ) 158 ); 159 160 echo "<h1 style='padding-left:10px;border-bottom: 1px solid #ccc;'>Optional Add-Ons</h1>"; 161 162 woocommerce_wp_text_input( 163 array( 164 'id' => 'asmplsww_addons_item_points', 165 'label' => __('Item Points', 'asm_addons_item_points'), 166 'desc_tip' => 'true', 167 'description' => __('Enter Item Points', 'asmplsww') 168 ) 169 ); 170 171 woocommerce_wp_text_input( 172 array( 173 'id' => 'asmplsww_addons_multi_box_points', 174 'label' => __('Multi Box Points', 'asmplsww_addons_multi_box_points'), 175 'desc_tip' => 'true', 176 'description' => __('Enter Item Points', 'asmplsww') 177 ) 178 ); 179 180 woocommerce_wp_text_input( 181 array( 182 'id' => 'asmplsww_addons_bundled_qty', 183 'label' => __('Bundled Quantity', 'asmplsww_addons_bundled_qty'), 184 'desc_tip' => 'true', 185 'description' => __('Enter Bundled Qty', 'asmplsww') 186 ) 187 ); 188 189 woocommerce_wp_text_input( 190 array( 191 'id' => 'asmplsww_addons_bundled_weight', 192 'label' => __('Bundled Weight', 'asmplsww_addons_bundled_weight'), 193 'desc_tip' => 'true', 194 'description' => __('Enter Bundled Weight', 'asmplsww') 195 ) 196 ); 197 198 woocommerce_wp_text_input( 199 array( 200 'id' => 'asmplsww_addons_bundled_dimension', 201 'label' => __('Bundled Dimensions', 'asmplsww_addons_bundled_dimension'), 202 'desc_tip' => 'true', 203 'description' => __('Enter Bundled Dimension', 'asmplsww') 204 ) 205 ); 206 207 woocommerce_wp_text_input( 208 array( 209 'id' => 'asmplsww_addons_bundled_points', 210 'label' => __('Bundled Points', 'asmplsww_addons_bundled_points'), 211 'desc_tip' => 'true', 212 'description' => __('Enter Bundled Points', 'asmplsww') 213 ) 214 ); 215 216 woocommerce_wp_text_input( 217 array( 218 'id' => 'asmplsww_addons_process_time', 219 'label' => __('Processing Time', 'asmplsww'), 220 'desc_tip' => 'true', 221 'description' => __('Enter Process Time', 'asmplsww') 222 ) 223 ); 224 225 $asmplsww_addons_hazmat_checked = ''; 226 $asmplsww_addons_hazmat = get_post_meta($post->ID, 'asmplsww_addons_hazmat', true); 227 if ($asmplsww_addons_hazmat == 1) { 228 $asmplsww_addons_hazmat_checked = "checked=checked"; 229 } 230 echo "<p class=\"form-field asm_global_free_ship_exclusion \"><label>Hazmat</label>"; 231 echo "<input type=\"checkbox\" id=\"asmplsww_addons_hazmat\" name=\"asmplsww_addons_hazmat\" value=\"1\" $asmplsww_addons_hazmat_checked>"; 232 233 woocommerce_wp_textarea_input( 234 array( 235 'id' => 'asmplsww_addons_options_weight_points', 236 'label' => __('Option Weight Points', 'asmplsww'), 237 'desc_tip' => 'true', 238 'description' => __('Enter Option Weight Points', 'asmplsww') 239 ) 240 ); 241 242 243 echo "</div>"; 323 244 } 245 246 247 /** Hook callback function to save custom fields information */ 248 function asmplsww_admin_fields_save($post_id) 249 { 250 251 // Save Text Field 252 $asmplsww_dimensions = $_POST['asmplsww_dimensions']; 253 update_post_meta($post_id, 'asmplsww_dimensions', sanitize_text_field($asmplsww_dimensions)); 254 255 // Save Checkbox 256 $asmplsww_free_shipping = isset($_POST['asmplsww_free_shipping']) ? true : false; 257 update_post_meta($post_id, 'asmplsww_free_shipping', $asmplsww_free_shipping); 258 259 // Save Hidden field 260 $asmplsww_free_shipping_method = $_POST['asmplsww_free_shipping_method']; 261 update_post_meta($post_id, 'asmplsww_free_shipping_method', sanitize_text_field($asmplsww_free_shipping_method)); 262 263 $asmplsww_ship_alone = isset($_POST['asmplsww_ship_alone']) ? true : false; 264 update_post_meta($post_id, 'asmplsww_ship_alone', $asmplsww_ship_alone); 265 266 $asmplsww_flat_ship_rates = $_POST['asmplsww_flat_ship_rates']; 267 update_post_meta($post_id, 'asmplsww_flat_ship_rates', sanitize_textarea_field($asmplsww_flat_ship_rates)); 268 269 $asmplsww_origin_zip = $_POST['asmplsww_origin_zip']; 270 update_post_meta($post_id, 'asmplsww_origin_zip', sanitize_text_field($asmplsww_origin_zip)); 271 272 $asmplsww_multi_box_weight = $_POST['asmplsww_multi_box_weight']; 273 update_post_meta($post_id, 'asmplsww_multi_box_weight', sanitize_text_field($asmplsww_multi_box_weight)); 274 275 $asmplsww_multi_box_dimensions = $_POST['asmplsww_multi_box_dimensions']; 276 update_post_meta($post_id, 'asmplsww_multi_box_dimensions', sanitize_textarea_field($asmplsww_multi_box_dimensions)); 277 278 $asmplsww_invalid_ship_methods = $_POST['asmplsww_invalid_ship_methods']; 279 update_post_meta($post_id, 'asmplsww_invalid_ship_methods', sanitize_text_field($asmplsww_invalid_ship_methods)); 280 281 $asmplsww_markup = $_POST['asmplsww_markup']; 282 update_post_meta($post_id, 'asmplsww_markup', sanitize_text_field($asmplsww_markup)); 283 284 $asmplsww_global_free_ship_exclusion = isset($_POST['asmplsww_global_free_ship_exclusion']) ? true : false; 285 update_post_meta($post_id, 'asmplsww_global_free_ship_exclusion', $asmplsww_global_free_ship_exclusion); 286 287 $asmplsww_exclude_state = $_POST['asmplsww_exclude_state']; 288 update_post_meta($post_id, 'asmplsww_exclude_state', sanitize_textarea_field($asmplsww_exclude_state)); 289 290 $asmplsww_exclude_countries = $_POST['asmplsww_exclude_countries']; 291 update_post_meta($post_id, 'asmplsww_exclude_countries', sanitize_textarea_field($asmplsww_exclude_countries)); 292 293 $asmplsww_addons_number_boxes = $_POST['asmplsww_addons_number_boxes']; 294 update_post_meta($post_id, 'asmplsww_addons_number_boxes', sanitize_text_field($asmplsww_addons_number_boxes)); 295 296 $asmplsww_addons_item_points = $_POST['asmplsww_addons_item_points']; 297 update_post_meta($post_id, 'asmplsww_addons_item_points', sanitize_text_field($asmplsww_addons_item_points)); 298 299 $asmplsww_addons_multi_box_points = $_POST['asmplsww_addons_multi_box_points']; 300 update_post_meta($post_id, 'asmplsww_addons_multi_box_points', sanitize_text_field($asmplsww_addons_multi_box_points)); 301 302 $asmplsww_addons_bundled_qty = $_POST['asmplsww_addons_bundled_qty']; 303 update_post_meta($post_id, 'asmplsww_addons_bundled_qty', sanitize_text_field($asmplsww_addons_bundled_qty)); 304 305 $asmplsww_addons_bundled_weight = $_POST['asmplsww_addons_bundled_weight']; 306 update_post_meta($post_id, 'asmplsww_addons_bundled_weight', sanitize_text_field($asmplsww_addons_bundled_weight)); 307 308 $asmplsww_addons_bundled_dimension = $_POST['asmplsww_addons_bundled_dimension']; 309 update_post_meta($post_id, 'asmplsww_addons_bundled_dimension', sanitize_text_field($asmplsww_addons_bundled_dimension)); 310 311 $asmplsww_addons_bundled_points = $_POST['asmplsww_addons_bundled_points']; 312 update_post_meta($post_id, 'asmplsww_addons_bundled_points', sanitize_text_field($asmplsww_addons_bundled_points)); 313 314 $asmplsww_addons_process_time = $_POST['asmplsww_addons_process_time']; 315 update_post_meta($post_id, 'asmplsww_addons_process_time', sanitize_text_field($asmplsww_addons_process_time)); 316 317 $asmplsww_addons_hazmat = isset($_POST['asmplsww_addons_hazmat']) ? true : false; 318 update_post_meta($post_id, 'asmplsww_addons_hazmat', $asmplsww_addons_hazmat); 319 320 $asmplsww_addons_options_weight_points = $_POST['asmplsww_addons_options_weight_points']; 321 update_post_meta($post_id, 'asmplsww_addons_options_weight_points', sanitize_textarea_field($asmplsww_addons_options_weight_points)); 322 323 324 } 325 326 324 327 } 325 328 -
asm-manager/trunk/includes/asmplsww_product_field.php
r3282853 r3303095 2 2 /** 3 3 * @package ASM product field 4 * @version 1. 3.24 * @version 1.4 5 5 */ 6 6 … … 11 11 { 12 12 add_filter('woocommerce_product_data_tabs', 'add_asm_product_data_tab'); 13 function add_asm_product_data_tab($product_data_tabs) 14 { 15 $product_data_tabs['my-custom-tab'] = array( 16 'label' => __('Advanced Shipping Manager', 'my_text_domain'), 17 'target' => 'my_custom_product_data', 18 ); 19 return $product_data_tabs; 20 } 21 13 22 14 add_action('woocommerce_product_data_panels', 'add_asm_product_data_fields'); 23 function add_asm_product_data_fields() 24 { 25 global $woocommerce, $post; 26 27 // id below must match target registered in above add_my_custom_product_data_tab function 28 echo "<div id=\"my_custom_product_data\" class=\"panel woocommerce_options_panel\">"; 29 woocommerce_wp_text_input( 30 array( 31 'id' => '_asm_dimensions', 32 'label' => __('Dimensions', 'as_dimensions'), 33 'desc_tip' => 'true', 34 'description' => __('Enter the Dimension of package.', 'woocommerce') 35 ) 36 ); 37 38 $_asm_free_shipping = get_post_meta($post->ID, '_asm_free_shipping', true); 39 if ($_asm_free_shipping == 1) { 40 $checked_free_shipping = "checked=checked"; 41 } 42 echo "<p class=\"form-field _asm_free_shipping \"><label>Free Shipping</label>"; 43 echo "<input type=\"checkbox\" id=\"_asm_free_shipping\" name=\"_asm_free_shipping\" value=\"1\" $checked_free_shipping>"; 44 45 woocommerce_wp_text_input( 46 array( 47 'id' => '_asm_free_shipping_method', 48 'label' => __('Free Shipping Method', 'asm_free_shipping_method'), 49 'desc_tip' => 'true', 50 'description' => __('Enter Free Shipping Method', 'woocommerce') 51 ) 52 ); 53 54 55 $_asm_ship_alone = get_post_meta($post->ID, '_asm_ship_alone', true); 56 if ($_asm_ship_alone == 1) { 57 $checked_asm_ship_alone = "checked=checked"; 58 } 59 echo "<p class=\"form-field _asm_ship_alone \"><label>Ship Alone</label>"; 60 echo "<input type=\"checkbox\" id=\"_asm_ship_alone\" name=\"_asm_ship_alone\" value=\"1\" $checked_asm_ship_alone>"; 61 62 woocommerce_wp_textarea_input( 63 array( 64 'id' => '_asm_flat_ship_rates', 65 'label' => __('Flat Ship Rates', 'asm_flat_ship_rates'), 66 'desc_tip' => 'true', 67 'description' => __('Enter Flat Ship Rates', 'woocommerce') 68 ) 69 ); 70 71 woocommerce_wp_text_input( 72 array( 73 'id' => '_asm_origin_zip', 74 'label' => __('Origin Zip', 'asm_origin_zip'), 75 'desc_tip' => 'true', 76 'description' => __('Enter Origin Zip', 'woocommerce') 77 ) 78 ); 79 80 woocommerce_wp_text_input( 81 array( 82 'id' => '_asm_addons_number_boxes', 83 'label' => __('Number of Boxes', '_asm_addons_number_boxes'), 84 'desc_tip' => 'true', 85 'description' => __('Enter Number of Boxes', 'woocommerce') 86 ) 87 ); 88 89 woocommerce_wp_text_input( 90 array( 91 'id' => '_asm_multi_box_weight', 92 'label' => __('Multi Box Weights', 'asm_multi_box_weight'), 93 'desc_tip' => 'true', 94 'description' => __('Enter Multi Box Weights', 'woocommerce') 95 ) 96 ); 97 98 woocommerce_wp_textarea_input( 99 array( 100 'id' => '_asm_multi_box_dimensions', 101 'label' => __('Multi Box Dimensions', 'asm_multi_box_dimensions'), 102 'desc_tip' => 'true', 103 'description' => __('Enter Multi Box Dimensions', 'woocommerce') 104 ) 105 ); 106 107 woocommerce_wp_text_input( 108 array( 109 'id' => '_asm_invalid_ship_methods', 110 'label' => __('Invalid Ship Methods', 'asm_invalid_ship_methods'), 111 'desc_tip' => 'true', 112 'description' => __('Enter Invalid Ship Methods', 'woocommerce') 113 ) 114 ); 115 116 woocommerce_wp_text_input( 117 array( 118 'id' => '_asm_markup', 119 'label' => __('Markup', 'asm_markup'), 120 'desc_tip' => 'true', 121 'description' => __('Enter Markup', 'woocommerce') 122 ) 123 ); 124 125 $_asm_global_free_ship_exclusion = get_post_meta($post->ID, '_asm_global_free_ship_exclusion', true); 126 if ($_asm_global_free_ship_exclusion == 1) { 127 $checked_asm_global_free_ship_exclusion = "checked=checked"; 128 } 129 echo "<p class=\"form-field asm_global_free_ship_exclusion \"><label>Global Free Ship Exclusion</label>"; 130 echo "<input type=\"checkbox\" id=\"_asm_global_free_ship_exclusion\" name=\"_asm_global_free_ship_exclusion\" value=\"1\" $checked_asm_global_free_ship_exclusion>"; 131 132 woocommerce_wp_textarea_input( 133 array( 134 'id' => '_asm_exclude_state', 135 'label' => __('Exclude States', 'asm_exclude_state'), 136 'desc_tip' => 'true', 137 'description' => __('Enter Exclude States', 'woocommerce') 138 ) 139 ); 140 141 woocommerce_wp_textarea_input( 142 array( 143 'id' => '_asm_exclude_countries', 144 'label' => __('Exclude Countries', 'asm_exclude_countries'), 145 'desc_tip' => 'true', 146 'description' => __('Enter Exclude Countries', 'woocommerce') 147 ) 148 ); 149 150 echo "<h1 style='padding-left:10px;border-bottom: 1px solid #ccc;'>Optional Add-Ons</h1>"; 151 152 woocommerce_wp_text_input( 153 array( 154 'id' => '_asm_addons_item_points', 155 'label' => __('Item Points', 'asm_addons_item_points'), 156 'desc_tip' => 'true', 157 'description' => __('Enter Item Points', 'woocommerce') 158 ) 159 ); 160 161 woocommerce_wp_text_input( 162 array( 163 'id' => '_asm_addons_multi_box_points', 164 'label' => __('Multi Box Points', '_asm_addons_multi_box_points'), 165 'desc_tip' => 'true', 166 'description' => __('Enter Item Points', 'woocommerce') 167 ) 168 ); 169 170 woocommerce_wp_text_input( 171 array( 172 'id' => '_asm_addons_bundled_qty', 173 'label' => __('Bundled Quantity', '_asm_addons_bundled_qty'), 174 'desc_tip' => 'true', 175 'description' => __('Enter Bundled Qty', 'woocommerce') 176 ) 177 ); 178 179 woocommerce_wp_text_input( 180 array( 181 'id' => '_asm_addons_bundled_weight', 182 'label' => __('Bundled Weight', '_asm_addons_bundled_weight'), 183 'desc_tip' => 'true', 184 'description' => __('Enter Bundled Weight', 'woocommerce') 185 ) 186 ); 187 188 woocommerce_wp_text_input( 189 array( 190 'id' => '_asm_addons_bundled_dimension', 191 'label' => __('Bundled Dimensions', '_asm_addons_bundled_dimension'), 192 'desc_tip' => 'true', 193 'description' => __('Enter Bundled Dimension', 'woocommerce') 194 ) 195 ); 196 197 woocommerce_wp_text_input( 198 array( 199 'id' => '_asm_addons_bundled_points', 200 'label' => __('Bundled Points', '_asm_addons_bundled_points'), 201 'desc_tip' => 'true', 202 'description' => __('Enter Bundled Points', 'woocommerce') 203 ) 204 ); 205 206 woocommerce_wp_text_input( 207 array( 208 'id' => '_asm_addons_process_time', 209 'label' => __('Processing Time', '_asm_addons_process'), 210 'desc_tip' => 'true', 211 'description' => __('Enter Process Time', 'woocommerce') 212 ) 213 ); 214 215 $_asm_addons_hazmat = get_post_meta($post->ID, '_asm_addons_hazmat', true); 216 if ($_asm_addons_hazmat == 1) { 217 $checked_asm_addons_hazmat = "checked=checked"; 218 } 219 echo "<p class=\"form-field asm_global_free_ship_exclusion \"><label>Hazmat</label>"; 220 echo "<input type=\"checkbox\" id=\"_asm_addons_hazmat\" name=\"_asm_addons_hazmat\" value=\"1\" $checked_asm_addons_hazmat>"; 221 222 woocommerce_wp_textarea_input( 223 array( 224 'id' => '_asm_addons_options_weight_points', 225 'label' => __('Option Weight Points', '_asm_addons_options_weight_points'), 226 'desc_tip' => 'true', 227 'description' => __('Enter Option Weight Points', 'woocommerce') 228 ) 229 ); 230 231 232 echo "</div>"; 233 } 234 235 /** Hook callback function to save custom fields information */ 236 function save_asm_product_data_fields($post_id) 237 { 238 // Save Text Field 239 $_asm_dimensions = $_POST['_asm_dimensions']; 240 update_post_meta($post_id, '_asm_dimensions', sanitize_text_field($_asm_dimensions)); 241 242 // Save Checkbox 243 $_asm_free_shipping = isset($_POST['_asm_free_shipping']) ? true : false; 244 update_post_meta($post_id, '_asm_free_shipping', $_asm_free_shipping); 245 246 // Save Hidden field 247 $_asm_free_shipping_method = $_POST['_asm_free_shipping_method']; 248 update_post_meta($post_id, '_asm_free_shipping_method', sanitize_text_field($_asm_free_shipping_method)); 249 250 $_asm_ship_alone = isset($_POST['_asm_ship_alone']) ? true : false; 251 update_post_meta($post_id, '_asm_ship_alone', $_asm_ship_alone); 252 253 $_asm_flat_ship_rates = $_POST['_asm_flat_ship_rates']; 254 update_post_meta($post_id, '_asm_flat_ship_rates', sanitize_textarea_field($_asm_flat_ship_rates)); 255 256 $_asm_origin_zip = $_POST['_asm_origin_zip']; 257 update_post_meta($post_id, '_asm_origin_zip', sanitize_text_field($_asm_origin_zip)); 258 259 $_asm_multi_box_weight = $_POST['_asm_multi_box_weight']; 260 update_post_meta($post_id, '_asm_multi_box_weight', sanitize_text_field($_asm_multi_box_weight)); 261 262 $_asm_multi_box_dimensions = $_POST['_asm_multi_box_dimensions']; 263 update_post_meta($post_id, '_asm_multi_box_dimensions', sanitize_text_field($_asm_multi_box_dimensions)); 264 265 $_asm_invalid_ship_methods = $_POST['_asm_invalid_ship_methods']; 266 update_post_meta($post_id, '_asm_invalid_ship_methods', sanitize_text_field($_asm_invalid_ship_methods)); 267 268 $_asm_markup = $_POST['_asm_markup']; 269 update_post_meta($post_id, '_asm_markup', sanitize_text_field($_asm_markup)); 270 271 $_asm_global_free_ship_exclusion = isset($_POST['_asm_global_free_ship_exclusion']) ? true : false; 272 update_post_meta($post_id, '_asm_global_free_ship_exclusion', $_asm_global_free_ship_exclusion); 273 274 $_asm_exclude_state = $_POST['_asm_exclude_state']; 275 update_post_meta($post_id, '_asm_exclude_state', sanitize_textarea_field($_asm_exclude_state)); 276 277 $_asm_exclude_countries = $_POST['_asm_exclude_countries']; 278 update_post_meta($post_id, '_asm_exclude_countries', sanitize_textarea_field($_asm_exclude_countries)); 279 280 $_asm_addons_number_boxes = $_POST['_asm_addons_number_boxes']; 281 update_post_meta($post_id, '_asm_addons_number_boxes', sanitize_text_field($_asm_addons_number_boxes)); 282 283 $_asm_addons_item_points = $_POST['_asm_addons_item_points']; 284 update_post_meta($post_id, '_asm_addons_item_points', sanitize_text_field($_asm_addons_item_points)); 285 286 $_asm_addons_multi_box_points = $_POST['_asm_addons_multi_box_points']; 287 update_post_meta($post_id, '_asm_addons_multi_box_points', sanitize_text_field($_asm_addons_multi_box_points)); 288 289 $_asm_addons_bundled_qty = $_POST['_asm_addons_bundled_qty']; 290 update_post_meta($post_id, '_asm_addons_bundled_qty', sanitize_text_field($_asm_addons_bundled_qty)); 291 292 $_asm_addons_bundled_weight = $_POST['_asm_addons_bundled_weight']; 293 update_post_meta($post_id, '_asm_addons_bundled_weight', sanitize_text_field($_asm_addons_bundled_weight)); 294 295 $_asm_addons_bundled_dimension = $_POST['_asm_addons_bundled_dimension']; 296 update_post_meta($post_id, '_asm_addons_bundled_dimension', sanitize_text_field($_asm_addons_bundled_dimension)); 297 298 $_asm_addons_bundled_points = $_POST['_asm_addons_bundled_points']; 299 update_post_meta($post_id, '_asm_addons_bundled_points', sanitize_text_field($_asm_addons_bundled_points)); 300 301 $_asm_addons_process_time = $_POST['_asm_addons_process_time']; 302 update_post_meta($post_id, '_asm_addons_process_time', sanitize_text_field($_asm_addons_process_time)); 303 304 $_asm_addons_hazmat = isset($_POST['_asm_addons_hazmat']) ? true : false; 305 update_post_meta($post_id, '_asm_addons_hazmat', $_asm_addons_hazmat); 306 307 $_asm_addons_options_weight_points = $_POST['_asm_addons_options_weight_points']; 308 update_post_meta($post_id, '_asm_addons_options_weight_points', sanitize_textarea_field($_asm_addons_options_weight_points)); 309 } 310 15 311 16 add_action('woocommerce_process_product_meta', 'save_asm_product_data_fields'); 312 17 } 18 19 function add_asm_product_data_tab($product_data_tabs) 20 { 21 $product_data_tabs['my-custom-tab'] = array( 22 'label' => __('Advanced Shipping Manager', 'asmplsww'), 23 'target' => 'my_custom_product_data', 24 ); 25 return $product_data_tabs; 26 } 27 28 function add_asm_product_data_fields() 29 { 30 global $woocommerce, $post; 31 32 // id below must match target registered in above add_my_custom_product_data_tab function 33 echo "<div id=\"my_custom_product_data\" class=\"panel woocommerce_options_panel\">"; 34 woocommerce_wp_text_input( 35 array( 36 'id' => '_asm_dimensions', 37 'label' => __('Dimensions', 'asmplsww'), 38 'desc_tip' => 'true', 39 'description' => __('Enter the Dimension of package.', 'asmplsww') 40 ) 41 ); 42 43 $_asm_free_shipping = get_post_meta($post->ID, '_asm_free_shipping', true); 44 if ($_asm_free_shipping == 1) { 45 $checked_free_shipping = "checked=checked"; 46 } 47 echo "<p class=\"form-field _asm_free_shipping \"><label>Free Shipping</label>"; 48 echo "<input type=\"checkbox\" id=\"_asm_free_shipping\" name=\"_asm_free_shipping\" value=\"1\" $checked_free_shipping>"; 49 50 woocommerce_wp_text_input( 51 array( 52 'id' => '_asm_free_shipping_method', 53 'label' => __('Free Shipping Method', 'asmplsww'), 54 'desc_tip' => 'true', 55 'description' => __('Enter Free Shipping Method', 'asmplsww') 56 ) 57 ); 58 59 60 $_asm_ship_alone = get_post_meta($post->ID, '_asm_ship_alone', true); 61 if ($_asm_ship_alone == 1) { 62 $checked_asm_ship_alone = "checked=checked"; 63 } 64 echo "<p class=\"form-field _asm_ship_alone \"><label>Ship Alone</label>"; 65 echo "<input type=\"checkbox\" id=\"_asm_ship_alone\" name=\"_asm_ship_alone\" value=\"1\" $checked_asm_ship_alone>"; 66 67 woocommerce_wp_textarea_input( 68 array( 69 'id' => '_asm_flat_ship_rates', 70 'label' => __('Flat Ship Rates', 'asmplsww'), 71 'desc_tip' => 'true', 72 'description' => __('Enter Flat Ship Rates', 'asmplsww') 73 ) 74 ); 75 76 woocommerce_wp_text_input( 77 array( 78 'id' => '_asm_origin_zip', 79 'label' => __('Origin Zip', 'asmplsww'), 80 'desc_tip' => 'true', 81 'description' => __('Enter Origin Zip', 'asmplsww') 82 ) 83 ); 84 85 woocommerce_wp_text_input( 86 array( 87 'id' => '_asm_addons_number_boxes', 88 'label' => __('Number of Boxes', 'asmplsww'), 89 'desc_tip' => 'true', 90 'description' => __('Enter Number of Boxes', 'asmplsww') 91 ) 92 ); 93 94 woocommerce_wp_text_input( 95 array( 96 'id' => '_asm_multi_box_weight', 97 'label' => __('Multi Box Weights', 'asmplsww'), 98 'desc_tip' => 'true', 99 'description' => __('Enter Multi Box Weights', 'asmplsww') 100 ) 101 ); 102 103 woocommerce_wp_textarea_input( 104 array( 105 'id' => '_asm_multi_box_dimensions', 106 'label' => __('Multi Box Dimensions', 'asmplsww'), 107 'desc_tip' => 'true', 108 'description' => __('Enter Multi Box Dimensions', 'asmplsww') 109 ) 110 ); 111 112 woocommerce_wp_text_input( 113 array( 114 'id' => '_asm_invalid_ship_methods', 115 'label' => __('Invalid Ship Methods', 'asmplsww'), 116 'desc_tip' => 'true', 117 'description' => __('Enter Invalid Ship Methods', 'asmplsww') 118 ) 119 ); 120 121 woocommerce_wp_text_input( 122 array( 123 'id' => '_asm_markup', 124 'label' => __('Markup', 'asmplsww'), 125 'desc_tip' => 'true', 126 'description' => __('Enter Markup', 'asmplsww') 127 ) 128 ); 129 130 $_asm_global_free_ship_exclusion = get_post_meta($post->ID, '_asm_global_free_ship_exclusion', true); 131 if ($_asm_global_free_ship_exclusion == 1) { 132 $checked_asm_global_free_ship_exclusion = "checked=checked"; 133 } 134 echo "<p class=\"form-field asm_global_free_ship_exclusion \"><label>Global Free Ship Exclusion</label>"; 135 echo "<input type=\"checkbox\" id=\"_asm_global_free_ship_exclusion\" name=\"_asm_global_free_ship_exclusion\" value=\"1\" $checked_asm_global_free_ship_exclusion>"; 136 137 woocommerce_wp_textarea_input( 138 array( 139 'id' => '_asm_exclude_state', 140 'label' => __('Exclude States', 'asmplsww'), 141 'desc_tip' => 'true', 142 'description' => __('Enter Exclude States', 'asmplsww') 143 ) 144 ); 145 146 woocommerce_wp_textarea_input( 147 array( 148 'id' => '_asm_exclude_countries', 149 'label' => __('Exclude Countries', 'asmplsww'), 150 'desc_tip' => 'true', 151 'description' => __('Enter Exclude Countries', 'asmplsww') 152 ) 153 ); 154 155 echo "<h1 style='padding-left:10px;border-bottom: 1px solid #ccc;'>Optional Add-Ons</h1>"; 156 157 woocommerce_wp_text_input( 158 array( 159 'id' => '_asm_addons_item_points', 160 'label' => __('Item Points', 'asmplsww'), 161 'desc_tip' => 'true', 162 'description' => __('Enter Item Points', 'asmplsww') 163 ) 164 ); 165 166 woocommerce_wp_text_input( 167 array( 168 'id' => '_asm_addons_multi_box_points', 169 'label' => __('Multi Box Points', 'asmplsww'), 170 'desc_tip' => 'true', 171 'description' => __('Enter Item Points', 'asmplsww') 172 ) 173 ); 174 175 woocommerce_wp_text_input( 176 array( 177 'id' => '_asm_addons_bundled_qty', 178 'label' => __('Bundled Quantity', 'asmplsww'), 179 'desc_tip' => 'true', 180 'description' => __('Enter Bundled Qty', 'asmplsww') 181 ) 182 ); 183 184 woocommerce_wp_text_input( 185 array( 186 'id' => '_asm_addons_bundled_weight', 187 'label' => __('Bundled Weight', 'asmplsww'), 188 'desc_tip' => 'true', 189 'description' => __('Enter Bundled Weight', 'asmplsww') 190 ) 191 ); 192 193 woocommerce_wp_text_input( 194 array( 195 'id' => '_asm_addons_bundled_dimension', 196 'label' => __('Bundled Dimensions', 'asmplsww'), 197 'desc_tip' => 'true', 198 'description' => __('Enter Bundled Dimension', 'asmplsww') 199 ) 200 ); 201 202 woocommerce_wp_text_input( 203 array( 204 'id' => '_asm_addons_bundled_points', 205 'label' => __('Bundled Points', 'asmplsww'), 206 'desc_tip' => 'true', 207 'description' => __('Enter Bundled Points', 'asmplsww') 208 ) 209 ); 210 211 woocommerce_wp_text_input( 212 array( 213 'id' => '_asm_addons_process_time', 214 'label' => __('Processing Time', 'asmplsww'), 215 'desc_tip' => 'true', 216 'description' => __('Enter Process Time', 'asmplsww') 217 ) 218 ); 219 220 $_asm_addons_hazmat = get_post_meta($post->ID, '_asm_addons_hazmat', true); 221 if ($_asm_addons_hazmat == 1) { 222 $checked_asm_addons_hazmat = "checked=checked"; 223 } 224 echo "<p class=\"form-field asm_global_free_ship_exclusion \"><label>Hazmat</label>"; 225 echo "<input type=\"checkbox\" id=\"_asm_addons_hazmat\" name=\"_asm_addons_hazmat\" value=\"1\" $checked_asm_addons_hazmat>"; 226 227 woocommerce_wp_textarea_input( 228 array( 229 'id' => '_asm_addons_options_weight_points', 230 'label' => __('Option Weight Points', 'asmplsww'), 231 'desc_tip' => 'true', 232 'description' => __('Enter Option Weight Points', 'asmplsww') 233 ) 234 ); 235 236 237 echo "</div>"; 238 } 239 240 function save_asm_product_data_fields($post_id) 241 { 242 // Save Text Field 243 $_asm_dimensions = $_POST['_asm_dimensions']; 244 update_post_meta($post_id, '_asm_dimensions', sanitize_text_field($_asm_dimensions)); 245 246 // Save Checkbox 247 $_asm_free_shipping = isset($_POST['_asm_free_shipping']) ? true : false; 248 update_post_meta($post_id, '_asm_free_shipping', $_asm_free_shipping); 249 250 // Save Hidden field 251 $_asm_free_shipping_method = $_POST['_asm_free_shipping_method']; 252 update_post_meta($post_id, '_asm_free_shipping_method', sanitize_text_field($_asm_free_shipping_method)); 253 254 $_asm_ship_alone = isset($_POST['_asm_ship_alone']) ? true : false; 255 update_post_meta($post_id, '_asm_ship_alone', $_asm_ship_alone); 256 257 $_asm_flat_ship_rates = $_POST['_asm_flat_ship_rates']; 258 update_post_meta($post_id, '_asm_flat_ship_rates', sanitize_textarea_field($_asm_flat_ship_rates)); 259 260 $_asm_origin_zip = $_POST['_asm_origin_zip']; 261 update_post_meta($post_id, '_asm_origin_zip', sanitize_text_field($_asm_origin_zip)); 262 263 $_asm_multi_box_weight = $_POST['_asm_multi_box_weight']; 264 update_post_meta($post_id, '_asm_multi_box_weight', sanitize_text_field($_asm_multi_box_weight)); 265 266 $_asm_multi_box_dimensions = $_POST['_asm_multi_box_dimensions']; 267 update_post_meta($post_id, '_asm_multi_box_dimensions', sanitize_text_field($_asm_multi_box_dimensions)); 268 269 $_asm_invalid_ship_methods = $_POST['_asm_invalid_ship_methods']; 270 update_post_meta($post_id, '_asm_invalid_ship_methods', sanitize_text_field($_asm_invalid_ship_methods)); 271 272 $_asm_markup = $_POST['_asm_markup']; 273 update_post_meta($post_id, '_asm_markup', sanitize_text_field($_asm_markup)); 274 275 $_asm_global_free_ship_exclusion = isset($_POST['_asm_global_free_ship_exclusion']) ? true : false; 276 update_post_meta($post_id, '_asm_global_free_ship_exclusion', $_asm_global_free_ship_exclusion); 277 278 $_asm_exclude_state = $_POST['_asm_exclude_state']; 279 update_post_meta($post_id, '_asm_exclude_state', sanitize_textarea_field($_asm_exclude_state)); 280 281 $_asm_exclude_countries = $_POST['_asm_exclude_countries']; 282 update_post_meta($post_id, '_asm_exclude_countries', sanitize_textarea_field($_asm_exclude_countries)); 283 284 $_asm_addons_number_boxes = $_POST['_asm_addons_number_boxes']; 285 update_post_meta($post_id, '_asm_addons_number_boxes', sanitize_text_field($_asm_addons_number_boxes)); 286 287 $_asm_addons_item_points = $_POST['_asm_addons_item_points']; 288 update_post_meta($post_id, '_asm_addons_item_points', sanitize_text_field($_asm_addons_item_points)); 289 290 $_asm_addons_multi_box_points = $_POST['_asm_addons_multi_box_points']; 291 update_post_meta($post_id, '_asm_addons_multi_box_points', sanitize_text_field($_asm_addons_multi_box_points)); 292 293 $_asm_addons_bundled_qty = $_POST['_asm_addons_bundled_qty']; 294 update_post_meta($post_id, '_asm_addons_bundled_qty', sanitize_text_field($_asm_addons_bundled_qty)); 295 296 $_asm_addons_bundled_weight = $_POST['_asm_addons_bundled_weight']; 297 update_post_meta($post_id, '_asm_addons_bundled_weight', sanitize_text_field($_asm_addons_bundled_weight)); 298 299 $_asm_addons_bundled_dimension = $_POST['_asm_addons_bundled_dimension']; 300 update_post_meta($post_id, '_asm_addons_bundled_dimension', sanitize_text_field($_asm_addons_bundled_dimension)); 301 302 $_asm_addons_bundled_points = $_POST['_asm_addons_bundled_points']; 303 update_post_meta($post_id, '_asm_addons_bundled_points', sanitize_text_field($_asm_addons_bundled_points)); 304 305 $_asm_addons_process_time = $_POST['_asm_addons_process_time']; 306 update_post_meta($post_id, '_asm_addons_process_time', sanitize_text_field($_asm_addons_process_time)); 307 308 $_asm_addons_hazmat = isset($_POST['_asm_addons_hazmat']) ? true : false; 309 update_post_meta($post_id, '_asm_addons_hazmat', $_asm_addons_hazmat); 310 311 $_asm_addons_options_weight_points = $_POST['_asm_addons_options_weight_points']; 312 update_post_meta($post_id, '_asm_addons_options_weight_points', sanitize_textarea_field($_asm_addons_options_weight_points)); 313 } 313 314 } 314 315 -
asm-manager/trunk/includes/asmplsww_query_live.php
r3282853 r3303095 2 2 /** 3 3 * @package ASM Shipping Api 4 * @version 1. 3.24 * @version 1.4 5 5 */ 6 6 global $woocommerce; … … 64 64 65 65 $domainname = ''; 66 $pieces = parse_url(home_url());66 $pieces = wp_parse_url(home_url()); 67 67 $domain = isset($pieces['host']) ? $pieces['host'] : ''; 68 if (preg_match('/(?P<domain>[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i', $domain, $regs)) { 69 $domainname = strstr($regs['domain'], '.', true); 70 } 68 $domainname = preg_replace('/[^a-z0-9]/i', '', $domain); 69 71 70 72 71 $xml_data = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> 73 72 <ShippingQuery> 74 73 <AccountIdentifier>BD8h3Dhs7qj18shr2p</AccountIdentifier> 75 <StoreIndicator>" . $domainname ."</StoreIndicator>76 <Domain>" . $domain . "</Domain>74 <StoreIndicator>" .$domainname."</StoreIndicator> 75 <Domain>" . $domain . "</Domain> 77 76 <Total>" . ($woocommerce->cart->cart_contents_total + $coupons_amount) . "</Total> 78 77 <TotalTaxable>" . $TotalTaxbaleProductPrice . "</TotalTaxable> … … 87 86 <Country>" . $woocommerce->customer->get_shipping_country() . "</Country> 88 87 </ShipToAddress> 89 <Products>";88 <Products>"; 90 89 91 90 foreach ($items as $item => $values) { -
asm-manager/trunk/includes/asmplsww_shipping_api.php
r3282853 r3303095 2 2 /** 3 3 * @package ASM Shipping Api 4 * @version 1. 3.24 * @version 1.4 5 5 */ 6 6 /* … … 44 44 if (self::isValidXml($data)) { 45 45 self::$output = json_decode(json_encode(simplexml_load_string($data)), true); 46 if (self::$output ) {46 if (self::$output && !empty(self::$output['AvailableMethods']['ShippingMethod'])) { 47 47 return self::$output['AvailableMethods']['ShippingMethod']; 48 48 } else { -
asm-manager/trunk/includes/asmplsww_shipping_method.php
r3282853 r3303095 1 1 <?php 2 2 3 /** 3 4 * @package ASM Shipping Method 4 * @version 1. 3.25 * @version 1.4 5 6 */ 6 7 7 function asmplsww_shipping_method_init() 8 { 9 if (!class_exists('ASMPLSWW_Shipping_Method')) { 10 class ASMPLSWW_Shipping_Method extends WC_Shipping_Method 8 9 if (!class_exists('ASMPLSWW_Shipping_Method')) { 10 class ASMPLSWW_Shipping_Method extends WC_Shipping_Method 11 { 12 public function __construct($instance_id = 0) 11 13 { 12 public function __construct($instance_id = 0) 13 { 14 $this->id = 'asmplsww'; // Id for your shipping method. Should be uunique. 14 $this->id = 'asmplsww'; // Id for your shipping method. Should be uunique. 15 15 16 // new fields added17 $this->instance_id = absint($instance_id);18 $this->supports = array(19 'shipping-zones',20 'instance-settings',21 'instance-settings-modal',22 );16 // new fields added 17 $this->instance_id = absint($instance_id); 18 $this->supports = array( 19 'shipping-zones', 20 'instance-settings', 21 'instance-settings-modal', 22 ); 23 23 24 $this->method_title = __('Advanced Shipping Manager'); // Title shown in admin25 $this->method_description = __('Description of your shipping method'); // Description shown in admin24 $this->method_title = __('Advanced Shipping Manager', 'asmplsww'); // Title shown in admin 25 $this->method_description = __('Description of your shipping method', 'asmplsww'); // Description shown in admin 26 26 27 $this->enabled = "yes"; // This can be added as an setting but for this example its forced enabled28 $this->title = 'Advanced Shipping Manager';// This can be added as an setting but for this example its forced.27 $this->enabled = "yes"; // This can be added as an setting but for this example its forced enabled 28 $this->title = 'Advanced Shipping Manager'; // This can be added as an setting but for this example its forced. 29 29 30 $this->init(); 30 $this->init(); 31 } 32 33 function init() 34 { 35 // Load the settings API 36 $this->init_form_fields(); // This is part of the settings API. Override the method to add your own settings 37 $this->init_settings(); // This is part of the settings API. Loads settings you previously init. 38 39 // Save settings in admin if you have any defined 40 add_action('woocommerce_update_options_shipping_' . $this->id, array($this, 'add_asmplsww_shipping_method')); 41 } 42 43 /** 44 * Form Fields 45 */ 46 public function init_form_fields() 47 { 48 $this->instance_form_fields = array( 49 'enabled' => array( 50 'title' => __('Enable / Disable', 'asmplsww'), 51 'type' => 'checkbox', 52 'label' => __('Enable This Shipping Service', 'asmplsww'), 53 'default' => 'yes', 54 'id' => 'asmplsww_enable_disable_shipping', 55 ), 56 ); 57 } 58 59 public function calculate_shipping($package = array()) 60 { 61 62 global $woocommerce; 63 //live query 64 include 'asmplsww_query_live.php'; 65 66 //Shipping API 67 if (!class_exists('ASMPLSWW_Shipping_Api')) { 68 include_once 'asmplsww_shipping_api.php'; 69 } 70 $city = $woocommerce->customer->get_shipping_city(); 71 $state = $woocommerce->customer->get_shipping_state(); 72 $zip = $woocommerce->customer->get_shipping_postcode(); 73 $country = $woocommerce->customer->get_shipping_country(); 74 75 try { 76 if (!empty($city) && !empty($state) && !empty($zip) && !empty($country)) { 77 78 if (is_user_logged_in()) { 79 $user_id = get_current_user_id(); 80 } else { 81 $user_id = WC()->session->get('guest_id'); 82 83 if (!$user_id) { 84 $user_id = 'guest_' . uniqid(); 85 WC()->session->set('guest_id', $user_id); 86 } 87 } 88 89 $cache_lifetime = 15 * MINUTE_IN_SECONDS; 90 91 $cached_cart_data = get_transient('asm_cart_data_' . $user_id); 92 $cached_cart_data_time = get_transient('asm_cart_data_time'); 93 $current_time = time(); 94 $time_difference = $current_time - intval($cached_cart_data_time); 95 $recalc_flag = WC()->session->get('force_shipping_recalc'); 96 97 if ($time_difference > $cache_lifetime || empty($cached_cart_data) || defined('DOING_AJAX') && DOING_AJAX || $recalc_flag) { 98 WC()->session->__unset('force_shipping_recalc'); // clear f 99 $shippingValues = ASMPLSWW_Shipping_Api::asmplswwGetShippingValue($xml_data); 100 set_transient('asm_cart_data_' . $user_id, $shippingValues, $cache_lifetime); 101 set_transient('asm_cart_data_time', $current_time, $cache_lifetime); 102 } else { 103 $shippingValues = $cached_cart_data; 104 } 105 } 106 107 } catch (Exception $e) { 108 $message = $e->getMessage(); 109 $messageType = "error"; 110 wc_add_notice($message, $messageType); 31 111 } 32 112 33 function init() 34 { 35 // Load the settings API 36 $this->init_form_fields(); // This is part of the settings API. Override the method to add your own settings 37 $this->init_settings(); // This is part of the settings API. Loads settings you previously init. 38 39 // Save settings in admin if you have any defined 40 add_action('woocommerce_update_options_shipping_' . $this->id, array($this, 'add_asmplsww_shipping_method')); 41 42 } 43 44 /** 45 * Form Fields 46 */ 47 public function init_form_fields() 48 { 49 $this->instance_form_fields = array( 50 'enabled' => array( 51 'title' => __('Enable / Disable', 'woocommerce'), 52 'type' => 'checkbox', 53 'label' => __('Enable This Shipping Service', 'woocommerce'), 54 'default' => 'yes', 55 'id' => 'asmplsww_enable_disable_shipping', 56 ), 113 if (isset($shippingValues['Name'], $shippingValues['Rate'])) { 114 $shipping_single_rate = array( 115 'id' => $this->id, 116 'label' => $shippingValues['Name'], 117 'cost' => $shippingValues['Rate'], 118 'taxes' => array($shippingValues['TaxRate']), 119 'calc_tax' => 'per_order', 57 120 ); 58 } 59 60 public function calculate_shipping($package = array()) 61 { 62 //live query 63 include 'asmplsww_query_live.php'; 64 65 //Shipping API 66 if (!class_exists('ASMPLSWW_Shipping_Api')) { 67 include_once 'asmplsww_shipping_api.php'; 68 } 69 70 try { 71 $shippingValues = ASMPLSWW_Shipping_Api::asmplswwGetShippingValue($xml_data); 72 } catch (Exception $e) { 73 $message = $e->getMessage(); 74 $messageType = "error"; 75 wc_add_notice($message, $messageType); 76 } 77 78 if (isset($shippingValues['Name'], $shippingValues['Rate'])) { 79 $shipping_single_rate = array( 80 'id' => $this->id, 81 'label' => $shippingValues['Name'], 82 'cost' => $shippingValues['Rate'], 83 'taxes' => array($shippingValues['TaxRate']), 84 'calc_tax' => 'per_order', 85 ); 86 $this->add_rate($shipping_single_rate); 87 } else if (is_array($shippingValues) && !empty($shippingValues)) { 88 foreach ($shippingValues as $key => $value) { 89 if ($shippingValues[$key]['Rate']) { 90 $shipping_rate = array( 91 'id' => 'key_' . $key, 92 'label' => $shippingValues[$key]['Name'], 93 'cost' => $shippingValues[$key]['Rate'], 94 'taxes' => array($shippingValues[$key]['TaxRate']), 95 'calc_tax' => 'per_order', 96 ); 97 $this->add_rate($shipping_rate); 98 } 121 $this->add_rate($shipping_single_rate); 122 } else if (is_array($shippingValues) && !empty($shippingValues)) { 123 foreach ($shippingValues as $key => $value) { 124 if ($shippingValues[$key]['Rate']) { 125 $shipping_rate = array( 126 'id' => 'key_' . $key, 127 'label' => $shippingValues[$key]['Name'], 128 'cost' => $shippingValues[$key]['Rate'], 129 'taxes' => array($shippingValues[$key]['TaxRate']), 130 'calc_tax' => 'per_order', 131 ); 132 $this->add_rate($shipping_rate); 99 133 } 100 134 } -
asm-manager/trunk/readme.txt
r3282853 r3303095 3 3 Donate link: https://advancedshippingmanager.com 4 4 Requires at least: 6.0 5 Tested up to: 6.8 6 Stable tag: 1. 37 Requires PHP: 5.2.45 Tested up to: 6.8.1 6 Stable tag: 1.4 7 Requires PHP: 7.0 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html 10 Tags: Advanced Shipping Manager, Shipping Manager, WooCommerce Shipping, Advanced Shipping, WooCommerce Shipping Manager10 Tags: Shipping Rates, Advanced Shipping Rates, Advanced Shipping, WooCommerce Shipping, WooCommerce Shipping Rates 11 11 12 12 Advanced Shipping Manager delivers full control over ALL of your shipping rules and methods, no matter how complicated your challenge may be! … … 73 73 74 74 == Changelog == 75 = 1.4.0 = 76 * MAJOR UPDATE! 77 * Embedded admin access 78 * Export/Import functionality added. 79 * Performance improvements 80 75 81 = 1.3.2 = 76 82 * Tax Connector fix
Note: See TracChangeset
for help on using the changeset viewer.