Changeset 3460036
- Timestamp:
- 02/12/2026 02:27:14 PM (7 weeks ago)
- Location:
- shipment-tracker-for-woocommerce/trunk
- Files:
-
- 1 added
- 22 edited
-
admin/class-bt-sync-shipment-tracking-admin.php (modified) (14 diffs)
-
admin/js/bt-sync-shipment-tracking-admin.js (modified) (5 diffs)
-
admin/partials/bt-shipment-tracking-metabox.php (modified) (1 diff)
-
admin/partials/order_admin_after_shipping.php (modified) (1 diff)
-
admin/partials/order_shipment_details.php (modified) (1 diff)
-
bt-sync-shipment-tracking.php (modified) (2 diffs)
-
composer.lock (modified) (6 diffs)
-
includes/class-bt-sync-shipment-tracking-crons.php (modified) (4 diffs)
-
includes/class-bt-sync-shipment-tracking-rest-functions.php (modified) (3 diffs)
-
includes/class-bt-sync-shipment-tracking-rest.php (modified) (4 diffs)
-
includes/class-bt-sync-shipment-tracking.php (modified) (19 diffs)
-
includes/models/class-bt-sync-shipment-tracking-shipment-model.php (modified) (1 diff)
-
includes/shipping_providers/ekart.php (modified) (6 diffs)
-
includes/shipping_providers/proship.php (added)
-
public/class-bt-sync-shipment-tracking-public.php (modified) (6 diffs)
-
public/partials/bt_shipping_tracking_form_2.php (modified) (5 diffs)
-
public/partials/bt_shipping_tracking_page_template_second.php (modified) (2 diffs)
-
vendor/composer/installed.json (modified) (7 diffs)
-
vendor/composer/installed.php (modified) (4 diffs)
-
vendor/doctrine/deprecations/README.md (modified) (1 diff)
-
vendor/doctrine/deprecations/composer.json (modified) (1 diff)
-
vendor/doctrine/deprecations/src/PHPUnit/VerifyDeprecations.php (modified) (1 diff)
-
vendor/symfony/finder/Finder.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
shipment-tracker-for-woocommerce/trunk/admin/class-bt-sync-shipment-tracking-admin.php
r3449395 r3460036 55 55 private $ekart; 56 56 private $courierkaro; 57 private $proship; 57 58 58 59 /** … … 63 64 * @param string $version The version of this plugin. 64 65 */ 65 public function __construct($plugin_name, $version, $shiprocket, $shyplite, $nimbuspost, $manual, $licenser, $shipmozo, $nimbuspost_new, $delhivery, $ship24, $fship, $ekart, $courierkaro )66 public function __construct($plugin_name, $version, $shiprocket, $shyplite, $nimbuspost, $manual, $licenser, $shipmozo, $nimbuspost_new, $delhivery, $ship24, $fship, $ekart, $courierkaro, $proship) 66 67 { 67 68 … … 80 81 $this->ekart = $ekart; 81 82 $this->courierkaro = $courierkaro; 83 $this->proship = $proship; 82 84 } 83 85 … … 173 175 "test_conn_ship24_nonce" => wp_create_nonce('api_call_for_ship24_test_connection'), 174 176 "test_conn_nimbuspost_nonce" => wp_create_nonce('api_check_for_nimbuspost_test_connection'), 177 "test_conn_proship_nonce" => wp_create_nonce('api_call_for_proship_test_connection'), 175 178 "buy_credit_balance_nonce" => wp_create_nonce('buy_credit_balance'), 176 179 "credit_balance_details_nonce" => wp_create_nonce('credit_balance_details'), … … 320 323 $order->add_order_note('Added schedule to push this order to Courier Karo.' . "\n\n- Shipment tracker for woocommerce", false); 321 324 wp_schedule_single_event(time() + 1, 'bt_push_order_to_courierkaro', array($order_id)); 325 326 } 327 }else if ($bt_shipping_provider == "proship") { 328 $bt_sst_proship_push_order_method_is_automatic = carbon_get_theme_option('bt_sst_proship_push_orders'); 329 $is_premium = $this->licenser->is_license_active(); 330 if ($bt_sst_proship_push_order_method_is_automatic == 1 && $is_premium) { 331 $order = wc_get_order($order_id); 332 $order->add_order_note('Added schedule to push this order to delhivery.' . "\n\n- Shipment tracker for woocommerce", false); 333 wp_schedule_single_event(time() + 1, 'bt_push_order_to_proship', array($order_id)); 322 334 323 335 } … … 653 665 return; 654 666 } 655 667 656 668 if ($push_resp) { 657 669 $ekart_tracking_id = $push_resp['tracking_id'] ?? ''; 658 670 Bt_Sync_Shipment_Tracking::bt_sst_update_order_meta($order_id, '_bt_ekart_tracking_id', $ekart_tracking_id); 659 Bt_Sync_Shipment_Tracking::bt_sst_update_order_meta($order_id, '_bt_shipping_awb', $ push_resp['barcodes']['wbn']);671 Bt_Sync_Shipment_Tracking::bt_sst_update_order_meta($order_id, '_bt_shipping_awb', $ekart_tracking_id); 660 672 $order->add_order_note("Order pushed to Ekart. Tracking No: " . $ekart_tracking_id . "\n\n- Shipment tracker for woocommerce", false); 661 //bt_force_sync_order_tracking($order_id);673 bt_force_sync_order_tracking($order_id); 662 674 } else { 663 675 $remarks = $push_resp['remark'] ?? ($push_resp['packages'][0]['remarks'] ?? 'Unknown error'); … … 717 729 } 718 730 } 731 732 public function push_order_to_proship($order_id) 733 { 734 try { 735 $order = wc_get_order($order_id); 736 737 $existing_awb = Bt_Sync_Shipment_Tracking::bt_sst_get_order_meta( 738 $order_id, 739 '_bt_proship_waybill_no', 740 true 741 ); 742 743 if (!empty($existing_awb)) { 744 $order->add_order_note( 745 'Delivery already assigned. Waybill No: ' . $existing_awb . "\n\n- Shipment tracker for WooCommerce", 746 false 747 ); 748 return; 749 } 750 751 $order->add_order_note( 752 'Pushing order to Proship: ' . $order_id . "\n\n- Shipment tracker for WooCommerce", 753 false 754 ); 755 756 $push_resp = $this->proship->create_order($order_id); 757 758 if (empty($push_resp) || !isset($push_resp['meta'])) { 759 $order->add_order_note( 760 'Failed to push order to Proship. Empty or invalid response.' . "\n\n- Shipment tracker for WooCommerce", 761 false 762 ); 763 return; 764 } 765 766 if (empty($push_resp['meta']['success'])) { 767 $error_msg = $push_resp['meta']['message'] ?? 'Unknown error from Proship'; 768 769 $order->add_order_note( 770 "Failed to push order to Proship: {$error_msg}\n\n- Shipment tracker for WooCommerce", 771 false 772 ); 773 return; 774 } 775 776 if (!empty($push_resp['result']['awb_number'])) { 777 $awb = $push_resp['result']['awb_number']; 778 Bt_Sync_Shipment_Tracking::bt_sst_update_order_meta($order_id, '_proship_new_label_url', $push_resp['result']['label_url']); 779 780 Bt_Sync_Shipment_Tracking::bt_sst_update_order_meta( 781 $order_id, 782 '_bt_proship_waybill_no', 783 $awb 784 ); 785 Bt_Sync_Shipment_Tracking::bt_sst_update_order_meta($order_id, '_bt_shipping_awb', $awb); 786 787 $order->add_order_note( 788 "Order pushed to Proship successfully. Waybill No: {$awb}\n\n- Shipment tracker for WooCommerce", 789 false 790 ); 791 792 bt_force_sync_order_tracking($order_id); 793 } else { 794 $order->add_order_note( 795 'Order created but AWB number not received from Proship.' . "\n\n- Shipment tracker for WooCommerce", 796 false 797 ); 798 } 799 800 } catch (Exception $e) { 801 error_log( 802 'Proship push error for order ' . $order_id . ': ' . $e->getMessage() 803 ); 804 } 805 } 806 719 807 public function push_order_to_nimbuspost($order_id) 720 808 { … … 892 980 893 981 } 982 894 983 function findKeysByValue(string $value, array $array = null): array 895 984 { … … 1032 1121 if (!$bt_shipping_provider || ($bt_shipping_provider == 'manual' && $shipping_mode_is_manual_or_ship24 == "manual")) { 1033 1122 include plugin_dir_path(dirname(__FILE__)) . 'admin/partials/bt-shipment-tracking-manual-metabox.php'; 1034 } else if ($bt_shipping_provider == 'shiprocket' || $bt_shipping_provider == 'shyplite' || $bt_shipping_provider == 'nimbuspost' || $bt_shipping_provider == 'xpressbees' || $bt_shipping_provider == 'shipmozo' || $bt_shipping_provider == 'nimbuspost_new' || $bt_shipping_provider == 'delhivery' || $shipping_mode_is_manual_or_ship24 == "ship24" || $bt_shipping_provider == "fship" || $bt_shipping_provider == "ekart" || $bt_shipping_provider == "courierkaro" ) {1123 } else if ($bt_shipping_provider == 'shiprocket' || $bt_shipping_provider == 'shyplite' || $bt_shipping_provider == 'nimbuspost' || $bt_shipping_provider == 'xpressbees' || $bt_shipping_provider == 'shipmozo' || $bt_shipping_provider == 'nimbuspost_new' || $bt_shipping_provider == 'delhivery' || $shipping_mode_is_manual_or_ship24 == "ship24" || $bt_shipping_provider == "fship" || $bt_shipping_provider == "ekart" || $bt_shipping_provider == "courierkaro" || $bt_shipping_provider == "proship") { 1035 1124 $order_id = isset($_GET['post']) ? $_GET['post'] : sanitize_text_field($_GET['id']); 1036 1125 include plugin_dir_path(dirname(__FILE__)) . 'admin/partials/bt-shipment-tracking-metabox.php'; … … 1276 1365 } 1277 1366 // $response = "idfugdf"; 1367 wp_send_json($response); 1368 die(); 1369 } 1370 1371 public function api_call_for_proship_test_connection() 1372 { 1373 $nonce = sanitize_text_field($_GET["value"]); 1374 if (!wp_verify_nonce($nonce, 'api_call_for_proship_test_connection')) { 1375 return; 1376 } 1377 $response = array( 1378 "status" => false, 1379 "data" => null, 1380 "message" => "Test Connection Failed. Please verify API URL and token and try again." 1381 ); 1382 $api_call = $this->proship->test_proship(); 1383 if ($api_call) { 1384 $response = array( 1385 "status" => true, 1386 "data" => null, 1387 "message" => "Test Connection Successful. Great work!!" 1388 ); 1389 } 1278 1390 wp_send_json($response); 1279 1391 die(); … … 2379 2491 $current_page = admin_url(sprintf($pagenow . '?%s', http_build_query($_GET))); 2380 2492 wp_safe_redirect($current_page); 2493 } else if (isset($_GET['bt_push_to_proship']) && $_GET['bt_push_to_proship'] == 1 && (isset($_GET['post']) || isset($_GET['id']))) { 2494 $order_id = isset($_GET['post']) ? $_GET['post'] : $_GET['id']; 2495 $getresponce = $this->push_order_to_proship($order_id); 2496 unset($_GET['bt_push_to_proship']); 2497 global $pagenow; 2498 $current_page = admin_url(sprintf($pagenow . '?%s', http_build_query($_GET))); 2499 wp_safe_redirect($current_page); 2381 2500 } else if (is_admin() && isset($_GET['page']) && $_GET['page'] === 'crb_carbon_fields_container_shipment_tracker.php') { 2382 2501 wp_safe_redirect(admin_url('admin.php?page=bt-shipment-tracking')); … … 3246 3365 $resp = false; 3247 3366 } 3367 } else if ($shipping_provider == 'proship') { 3368 $proship_new_label_url = Bt_Sync_Shipment_Tracking::bt_sst_get_order_meta($order_id, '_proship_new_label_url', true); 3369 if ($proship_new_label_url) { 3370 $resp = array($proship_new_label_url); 3371 } else { 3372 $resp = false; 3373 } 3248 3374 } 3249 3375 // else if($shipping_provider == 'nimbuspost'){ … … 3598 3724 { 3599 3725 require_once plugin_dir_path(dirname(__FILE__)) . 'includes/class-bt-sync-shipment-setting-update-core.php'; 3726 3600 3727 $shipment_setting_obj = new Class_bt_sync_shipment_setting_update_core(); 3601 3728 $bt_sst_timer_settings = get_option('bt_sst_timer_settings', []); 3602 $product_url_etd = get_option('_bt_sst_shiprocket_pincode_checker') ? $shipment_setting_obj->get_first_published_product_url() : false; 3603 $product_url_timer = (isset($bt_sst_timer_settings['bt_sst_timer_enable']) && $bt_sst_timer_settings['bt_sst_timer_enable'] === true) ? $shipment_setting_obj->get_first_published_product_url() : false; 3604 $bt_sst_timer_settings = get_option('bt_sst_timer_settings', []); 3729 $timer_enabled = !empty($bt_sst_timer_settings['bt_sst_timer_enable']); 3730 $etd_enabled = !empty(get_option('_bt_sst_shiprocket_pincode_checker')); 3731 $product_url_etd = $etd_enabled 3732 ? $shipment_setting_obj->get_first_published_product_url() 3733 : false; 3734 3735 $product_url_timer = $timer_enabled 3736 ? $shipment_setting_obj->get_first_published_product_url() 3737 : false; 3605 3738 $page_id = get_option('_bt_sst_tracking_page'); 3606 $page_status = get_post_status($page_id); 3607 $tracking_url = get_permalink($page_id) && $page_status === 'publish' ? get_permalink($page_id) : ''; 3739 $page_status = $page_id ? get_post_status($page_id) : false; 3740 $tracking_url = ($page_status === 'publish') 3741 ? get_permalink($page_id) 3742 : ''; 3608 3743 $shipment_setting_url = admin_url('admin.php?page=crb_carbon_fields_container_shipment_tracking.php'); 3609 $default_rpvider = get_option('_bt_sst_default_shipping_provider'); 3610 if ($default_rpvider) { 3611 $primary_shipping_provider_url = $shipment_setting_url . '&t=' . $default_rpvider; 3612 } else { 3613 $primary_shipping_provider_url = $shipment_setting_url . '&t=manual'; 3614 } 3615 3744 $default_provider = get_option('_bt_sst_default_shipping_provider'); 3745 $primary_shipping_provider_url = $shipment_setting_url . '&t=' . ($default_provider ?: 'manual'); 3616 3746 $resp = [ 3617 'tracking_page_status' => $page_status === 'publish' ? true : false,3618 'estimate_delivery_checker' => get_option('_bt_sst_shiprocket_pincode_checker') ? true : false,3619 'timer_setting_update' => $bt_sst_timer_settings['bt_sst_timer_enable'] === true ? true : false,3620 'fetch_auto_pincode' => get_option('_bt_sst_enable_auto_postcode_fill') ? true : false,3621 'fetch_weight' => get_option('_bt_sst_show_shipment_weight') ? true : false,3622 'fetch_dynamic_ship_method' => get_option('_bt_sst_select_courier_company') ? true : false,3623 'google_api_key' => get_option('_bt_sst_generic_google_key') ? get_option('_bt_sst_generic_google_key') : "",3624 'primary_shipping_method_setting_update' => get_option('_bt_sst_default_shipping_provider'),3625 'tracking_page_url' => $tracking_url,3626 'primary_shipping_provider_url' => $primary_shipping_provider_url,3627 'product_url_etd' => $product_url_etd,3628 'product_url_timer' => $product_url_timer,3747 'tracking_page_status' => $page_status === 'publish', 3748 'estimate_delivery_checker' => (bool) get_option('_bt_sst_shiprocket_pincode_checker'), 3749 'timer_setting_update' => $timer_enabled, 3750 'fetch_auto_pincode' => (bool) get_option('_bt_sst_enable_auto_postcode_fill'), 3751 'fetch_weight' => (bool) get_option('_bt_sst_show_shipment_weight'), 3752 'fetch_dynamic_ship_method' => (bool) get_option('_bt_sst_select_courier_company'), 3753 'google_api_key' => (string) get_option('_bt_sst_generic_google_key', ''), 3754 'primary_shipping_method_setting_update'=> $default_provider ?: 'none', 3755 'tracking_page_url' => $tracking_url, 3756 'primary_shipping_provider_url' => $primary_shipping_provider_url, 3757 'product_url_etd' => $product_url_etd, 3758 'product_url_timer' => $product_url_timer, 3629 3759 ]; 3630 3760 wp_send_json_success($resp); 3631 3632 } 3761 } 3762 3633 3763 public function bt_sst_update_tracking_settings() 3634 3764 { … … 3773 3903 $obj = new Bt_Sync_Shipment_Tracking_CourierKaro(); 3774 3904 $response = $obj->update_order_shipment_status($order_id); 3905 }else if ($bt_shipping_provider == 'proship') { 3906 $obj = new Bt_Sync_Shipment_Tracking_Proship(); 3907 $response = $obj->update_order_shipment_status($order_id); 3775 3908 } 3776 3909 -
shipment-tracker-for-woocommerce/trunk/admin/js/bt-sync-shipment-tracking-admin.js
r3388085 r3460036 235 235 api_test_connection_fship(); 236 236 }); 237 $(document).on('click', '#api_test_connection_btn_proship', function (e) { 238 e.preventDefault(); 239 $(this).addClass('is-loading'); 240 api_test_connection_proship(); 241 }); 237 242 $(document).on('click', '#api_test_connection_btn_ekart', function (e) { 238 243 e.preventDefault(); … … 292 297 293 298 const type = getUrlVars()["t"]; 294 console.log(type);299 if(type){ 295 300 const typeToButtonMap = { 296 301 tracking: "Tracking Widget", … … 315 320 316 321 } 322 } 317 323 318 324 … … 348 354 $('#api_test_connection_modal_ship24').css('display', 'none'); 349 355 356 }); 357 $(document).on('click', '#api_tc_m_close_btn_proship', function (e) { 358 $('#api_test_connection_modal_proship').removeClass('is-active'); 350 359 }); 351 360 $(document).on('click', '#api_shipmozo_tc_m_close_btn', function (e) { … … 967 976 ) 968 977 } 978 function api_test_connection_proship() { 979 var nonce = bt_sync_shipment_track_data.test_conn_proship_nonce; 980 $.get( 981 bt_sync_shipment_track_data.ajax_url, 982 { action: 'api_call_for_proship_test_connection', value: nonce }, 983 function (res) { 984 $('#api_tc-m-content_proship').html(res.message); 985 $('#api_test_connection_modal_proship').addClass('is-active'); 986 $('#api_test_connection_btn_proship').removeClass('is-loading'); 987 } 988 ); 989 } 969 990 function api_test_connection_ekart() { 970 991 // console.log(bt_sync_shipment_track_data.test_conn_nonce); -
shipment-tracker-for-woocommerce/trunk/admin/partials/bt-shipment-tracking-metabox.php
r3338305 r3460036 116 116 <?php } else { ?> 117 117 <button type="button" id="sync_manual" class="button save_order" href='#'>Sync Tracking Now</button> 118 <?php if ($get_awb_no && $bt_shipping_provider == 'shiprocket' || $bt_shipping_provider == 'delhivery' || $bt_shipping_provider == 'shipmozo' || $bt_shipping_provider == 'nimbuspost_new' || $bt_shipping_provider == 'nimbuspost' ) { ?>118 <?php if ($get_awb_no && $bt_shipping_provider == 'shiprocket' || $bt_shipping_provider == 'delhivery' || $bt_shipping_provider == 'shipmozo' || $bt_shipping_provider == 'nimbuspost_new' || $bt_shipping_provider == 'nimbuspost'|| $bt_shipping_provider == 'proship') { ?> 119 119 <button type="button" style="margin:5px 0" ; id="dawnload_able_pdf" class="button dawnload_able_document" 120 120 href='#'>Download Label</button> -
shipment-tracker-for-woocommerce/trunk/admin/partials/order_admin_after_shipping.php
r3431532 r3460036 53 53 ?> 54 54 <a href="<?php echo esc_url($current_page) ?>">Push Now</a> 55 56 <?php elseif($bt_shipping_provider == "proship" && wc_get_order($order_id)->has_status('processing')): 57 global $pagenow; 58 $current_page = admin_url(sprintf($pagenow . '?%s', http_build_query(array_merge($_GET, array("bt_push_to_proship" => true))))); 59 ?> 60 <a href="<?php echo esc_url($current_page) ?>">Push Now</a> 55 61 <?php endif ?> 56 62 -
shipment-tracker-for-woocommerce/trunk/admin/partials/order_shipment_details.php
r3431532 r3460036 45 45 $edit = "<br><a class='bt_sync_order_tracking' data-order-id='$order_id' href='#'>Sync Now</a>"; 46 46 } 47 else if ($bt_shipping_provider == "proship"){ 48 $edit = "<br><a class='bt_sync_order_tracking' data-order-id='$order_id' href='#'>Sync Now</a>"; 49 } 47 50 // } 48 51 } -
shipment-tracker-for-woocommerce/trunk/bt-sync-shipment-tracking.php
r3449395 r3460036 17 17 * Plugin URI: https://shipment-tracker-for-woocommerce.bitss.tech/ 18 18 * Description: Most comprehensive shipment tracking plugin that extends your woocommerce store with shipment related features. Keeps you & your customers informed about shipment movement. 19 * Version: 1.5. 2.6.119 * Version: 1.5.3.2 20 20 * Author: Bitss Techniques 21 21 * Author URI: https://shipment-tracker-for-woocommerce.bitss.tech … … 59 59 60 60 define( 'Carbon_Fields\URL', trailingslashit( plugin_dir_url( __FILE__ ) ) . 'vendor/htmlburger/carbon-fields/' );//fix for Bitnami installations. 61 define( 'BT_SYNC_SHIPMENT_TRACKING_VERSION', '1.5. 2.6.1' );62 define( 'BT_SHIPPING_PROVIDERS', array('delhivery' =>'Delhivery','nimbuspost' => 'Nimbuspost (Deprecated)','nimbuspost_new' => 'Nimbuspost','shipmozo'=>'Shipmozo','shiprocket' => 'Shiprocket', 'xpressbees' => 'Xpressbees', 'manual' =>'Custom Shipping', 'fship' => 'Fship','ekart' => 'Ekart','courierkaro' => 'Courier Karo' ) );63 define( 'BT_SHIPPING_PROVIDERS_WITH_NONE', array('none' =>'none','delhivery' =>'Delhivery', 'nimbuspost' => 'Nimbuspost (OLD)','nimbuspost_new' => 'Nimbuspost(NEW)','shipmozo'=>'Shipmozo','shiprocket' => 'Shiprocket', 'xpressbees' => 'Xpressbees','manual' =>'Custom Shipping' , 'fship' => 'Fship','ekart' => 'Ekart','courierkaro' => 'Courier Karo' ) );61 define( 'BT_SYNC_SHIPMENT_TRACKING_VERSION', '1.5.3.2' ); 62 define( 'BT_SHIPPING_PROVIDERS', array('delhivery' =>'Delhivery','nimbuspost' => 'Nimbuspost (Deprecated)','nimbuspost_new' => 'Nimbuspost','shipmozo'=>'Shipmozo','shiprocket' => 'Shiprocket', 'xpressbees' => 'Xpressbees', 'manual' =>'Custom Shipping', 'fship' => 'Fship','ekart' => 'Ekart','courierkaro' => 'Courier Karo','proship' => 'Proship') ); 63 define( 'BT_SHIPPING_PROVIDERS_WITH_NONE', array('none' =>'none','delhivery' =>'Delhivery', 'nimbuspost' => 'Nimbuspost (OLD)','nimbuspost_new' => 'Nimbuspost(NEW)','shipmozo'=>'Shipmozo','shiprocket' => 'Shiprocket', 'xpressbees' => 'Xpressbees','manual' =>'Custom Shipping' , 'fship' => 'Fship','ekart' => 'Ekart','courierkaro' => 'Courier Karo','proship' => 'Proship') ); 64 64 define( 'BT_SST_MANUAL_DEFAULT_COURIER_NAME', $default_manual_coriure_name); 65 65 define( 'BT_SHIPPING_STATUS', array('pending-pickup' => 'Pending pickup', 'out-for-pickup' => 'Out for pickup', 'in-transit' =>'In Transit', 'out-for-delivery' => 'Out for delivery', 'delivered' => 'Delivered', 'canceled' =>'Canceled', 'rto-in-transit' =>'RTO in Transit', 'rto-delivered' =>'RTO Delivered') ); -
shipment-tracker-for-woocommerce/trunk/composer.lock
r3446887 r3460036 204 204 { 205 205 "name": "doctrine/deprecations", 206 "version": "1.1. 5",206 "version": "1.1.6", 207 207 "source": { 208 208 "type": "git", 209 209 "url": "https://github.com/doctrine/deprecations.git", 210 "reference": " 459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38"211 }, 212 "dist": { 213 "type": "zip", 214 "url": "https://api.github.com/repos/doctrine/deprecations/zipball/ 459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38",215 "reference": " 459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38",210 "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca" 211 }, 212 "dist": { 213 "type": "zip", 214 "url": "https://api.github.com/repos/doctrine/deprecations/zipball/d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", 215 "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", 216 216 "shasum": "" 217 217 }, … … 220 220 }, 221 221 "conflict": { 222 "phpunit/phpunit": "<=7.5 || >=1 3"222 "phpunit/phpunit": "<=7.5 || >=14" 223 223 }, 224 224 "require-dev": { 225 "doctrine/coding-standard": "^9 || ^12 || ^1 3",226 "phpstan/phpstan": "1.4.10 || 2.1. 11",225 "doctrine/coding-standard": "^9 || ^12 || ^14", 226 "phpstan/phpstan": "1.4.10 || 2.1.30", 227 227 "phpstan/phpstan-phpunit": "^1.0 || ^2", 228 "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12 ",228 "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12.4 || ^13.0", 229 229 "psr/log": "^1 || ^2 || ^3" 230 230 }, … … 246 246 "support": { 247 247 "issues": "https://github.com/doctrine/deprecations/issues", 248 "source": "https://github.com/doctrine/deprecations/tree/1.1. 5"249 }, 250 "time": "202 5-04-07T20:06:18+00:00"248 "source": "https://github.com/doctrine/deprecations/tree/1.1.6" 249 }, 250 "time": "2026-02-07T07:09:04+00:00" 251 251 }, 252 252 { … … 993 993 { 994 994 "name": "symfony/finder", 995 "version": "v6.4.3 2",995 "version": "v6.4.33", 996 996 "source": { 997 997 "type": "git", 998 998 "url": "https://github.com/symfony/finder.git", 999 "reference": " 3ec24885c1d9ababbb9c8f63bb42fea3c8c9b6de"1000 }, 1001 "dist": { 1002 "type": "zip", 1003 "url": "https://api.github.com/repos/symfony/finder/zipball/ 3ec24885c1d9ababbb9c8f63bb42fea3c8c9b6de",1004 "reference": " 3ec24885c1d9ababbb9c8f63bb42fea3c8c9b6de",999 "reference": "24965ca011dac87431729640feef8bcf7b5523e0" 1000 }, 1001 "dist": { 1002 "type": "zip", 1003 "url": "https://api.github.com/repos/symfony/finder/zipball/24965ca011dac87431729640feef8bcf7b5523e0", 1004 "reference": "24965ca011dac87431729640feef8bcf7b5523e0", 1005 1005 "shasum": "" 1006 1006 }, … … 1037 1037 "homepage": "https://symfony.com", 1038 1038 "support": { 1039 "source": "https://github.com/symfony/finder/tree/v6.4.3 2"1039 "source": "https://github.com/symfony/finder/tree/v6.4.33" 1040 1040 }, 1041 1041 "funding": [ … … 1057 1057 } 1058 1058 ], 1059 "time": "2026-01- 10T14:09:00+00:00"1059 "time": "2026-01-26T13:03:48+00:00" 1060 1060 }, 1061 1061 { -
shipment-tracker-for-woocommerce/trunk/includes/class-bt-sync-shipment-tracking-crons.php
r3446887 r3460036 18 18 private $fship; 19 19 private $courierkaro; 20 21 public function __construct($shiprocket,$shyplite,$nimbuspost_new,$shipmozo,$licenser,$delhivery, $fship, $courierkaro) { 20 private $proship; 21 22 public function __construct($shiprocket,$shyplite,$nimbuspost_new,$shipmozo,$licenser,$delhivery, $fship, $courierkaro, $proship) { 22 23 $this->shiprocket = $shiprocket; 23 24 $this->shipmozo = $shipmozo; … … 28 29 $this->fship = $fship; 29 30 $this->courierkaro = $courierkaro; 31 $this->proship = $proship; 30 32 } 31 33 … … 108 110 $objs = $this->courierkaro->update_order_shipment_status($o); 109 111 // error_log(json_encode($objs)); 112 } 113 } 114 } 115 116 private function sync_proship(){ 117 $orderids = $this->get_orders('proship'); 118 foreach($orderids as $o){ 119 $bt_shipment_tracking = Bt_Sync_Shipment_Tracking_Shipment_Model::get_tracking_by_order_id($o); 120 if(empty($bt_shipment_tracking) || empty($bt_shipment_tracking->current_status) || stripos($bt_shipment_tracking->current_status, "delivered") === false){ 121 $objs = $this->proship->update_order_shipment_status($o); 110 122 } 111 123 } … … 242 254 $this->sync_courierkaro(); 243 255 } 256 if(is_array($enabled_shipping_providers) && in_array('proship',$enabled_shipping_providers)){ 257 $bt_sst_proship_cron_schedule = carbon_get_theme_option( 'bt_sst_proship_cron_schedule' ); 258 if( $bt_sst_proship_cron_schedule == $cron_freq ){ 259 $this->sync_proship(); 260 } 261 } 244 262 $bt_sst_shyplite_cron_schedule=carbon_get_theme_option( 'bt_sst_shyplite_cron_schedule' ); 245 263 if( $bt_sst_shyplite_cron_schedule==1){ -
shipment-tracker-for-woocommerce/trunk/includes/class-bt-sync-shipment-tracking-rest-functions.php
r3449395 r3460036 15 15 private $courierkaro; 16 16 private $delhivery; 17 18 public function __construct($shiprocket,$shyplite, $nimbuspost, $manual, $xpressbees, $shipmozo, $nimbuspost_new, $ship24,$ekart, $courierkaro, $delhivery) { 17 private $proship; 18 19 public function __construct($shiprocket,$shyplite, $nimbuspost, $manual, $xpressbees, $shipmozo, $nimbuspost_new, $ship24,$ekart, $courierkaro, $delhivery, $proship) { 19 20 20 21 $this->shiprocket = $shiprocket; … … 29 30 $this->delhivery = $delhivery; 30 31 $this->courierkaro = $courierkaro; 32 $this->proship = $proship; 31 33 } 32 34 … … 141 143 return $this->delhivery->delhivery_webhook_receiver($request); 142 144 } 145 public function proship_webhook_receiver($request){ 146 return $this->proship->proship_webhook_receiver($request); 147 } 143 148 144 149 public function shipmozo_webhook_receiver($request){ -
shipment-tracker-for-woocommerce/trunk/includes/class-bt-sync-shipment-tracking-rest.php
r3446887 r3460036 39 39 private $rest_route_courierkaro; 40 40 private $rest_route_delhivery; 41 private $rest_route_proship; 41 42 42 43 /** … … 47 48 * @param string $version The version of this plugin. 48 49 */ 49 public function __construct( $plugin_name, $version, $shiprocket, $shyplite, $nimbuspost, $manual, $xpressbees, $shipmozo, $nimbuspost_new, $ship24, $ekart, $courierkaro, $delhivery ) {50 public function __construct( $plugin_name, $version, $shiprocket, $shyplite, $nimbuspost, $manual, $xpressbees, $shipmozo, $nimbuspost_new, $ship24, $ekart, $courierkaro, $delhivery, $proship = null ) { 50 51 51 52 require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-bt-sync-shipment-tracking-rest-functions.php'; … … 64 65 $this->rest_route_delhivery = "bt-sync-shipment-tracking-delhivery"; 65 66 $this->rest_route_courierkaro = "bt-sync-shipment-tracking-courierkaro"; 66 67 $this->rest_functions = new Bt_Sync_Shipment_Tracking_Rest_Functions($shiprocket,$shyplite,$nimbuspost, $manual, $xpressbees,$shipmozo,$nimbuspost_new, $ship24, $ekart, $courierkaro, $delhivery); 67 $this->rest_route_proship = "bt-sync-shipment-tracking-proship"; 68 69 $this->rest_functions = new Bt_Sync_Shipment_Tracking_Rest_Functions($shiprocket,$shyplite,$nimbuspost, $manual, $xpressbees,$shipmozo,$nimbuspost_new, $ship24, $ekart, $courierkaro, $delhivery, $proship); 68 70 } 69 71 … … 200 202 )); 201 203 } 204 public function rest_proship_webhook(){ 205 register_rest_route( $this->rest_route_proship . '/' . $this->version , 'webhook_receiver', array( 206 'methods' => 'POST', 207 'callback' => array($this->rest_functions,"proship_webhook_receiver"), 208 'permission_callback' => '__return_true', 209 )); 210 } 202 211 203 212 public function rest_manual_webhook(){ -
shipment-tracker-for-woocommerce/trunk/includes/class-bt-sync-shipment-tracking.php
r3449401 r3460036 3 3 use Carbon_Fields\Container; 4 4 use Carbon_Fields\Field; 5 use PhpUnitsOfMeasure\PhysicalQuantity\Mass; 6 use PhpUnitsOfMeasure\PhysicalQuantity\Length; 5 7 6 8 /** … … 75 77 private $fship; 76 78 private $ekart; 79 private $proship; 77 80 78 81 /** … … 160 163 return null; 161 164 } 165 } 166 167 public static function bt_sst_compute_package_dimensions($order_id) { 168 if (false == $order = wc_get_order($order_id)) { 169 return [ 170 'length' => 0, 171 'width' => 0, 172 'height' => 0, 173 'weight' => 0, 174 ]; 175 } 176 177 $total_weight = 0; 178 $total_width = 0; 179 $total_length = 0; 180 $total_height = 0; 181 182 foreach ($order->get_items() as $item_id => $a) { 183 if (is_a($a, 'WC_Order_Item_Product')) { 184 $product = $a->get_product(); 185 if (!$product) continue; 186 $qty = $a->get_quantity(); 187 188 if (!empty($product->get_weight()) && $product->get_weight() > 0) { 189 $total_weight += ($product->get_weight() * $qty); 190 } 191 if (!empty($product->get_width()) && $product->get_width() > 0) { 192 $total_width += ($product->get_width() * $qty); 193 if ($product->get_length() > $total_length) { 194 $total_length = $product->get_length(); 195 } 196 if ($product->get_height() > $total_height) { 197 $total_height = $product->get_height(); 198 } 199 } 200 } 201 } 202 203 return [ 204 'length' => (float) $total_length, 205 'width' => (float) $total_width, 206 'height' => (float) $total_height, 207 'weight' => (float) $total_weight, 208 ]; 209 } 210 211 public static function bt_sst_get_package_dimensions($order_id) { 212 $dimension_unit = get_option('woocommerce_dimension_unit'); 213 $weight_unit = get_option('woocommerce_weight_unit'); 214 215 // Check order meta overrides (stored in store units) 216 $meta_length = Bt_Sync_Shipment_Tracking::bt_sst_get_order_meta($order_id, '_bt_package_length'); 217 $meta_width = Bt_Sync_Shipment_Tracking::bt_sst_get_order_meta($order_id, '_bt_package_width'); 218 $meta_height = Bt_Sync_Shipment_Tracking::bt_sst_get_order_meta($order_id, '_bt_package_height'); 219 $meta_weight = Bt_Sync_Shipment_Tracking::bt_sst_get_order_meta($order_id, '_bt_package_weight'); 220 221 if (!empty($meta_length) || !empty($meta_width) || !empty($meta_height) || !empty($meta_weight)) { 222 $length_val = !empty($meta_length) ? (float) $meta_length : 0; 223 $width_val = !empty($meta_width) ? (float) $meta_width : 0; 224 $height_val = !empty($meta_height) ? (float) $meta_height : 0; 225 $weight_val = !empty($meta_weight) ? (float) $meta_weight : 0; 226 } else { 227 $computed = Bt_Sync_Shipment_Tracking::bt_sst_compute_package_dimensions($order_id); 228 $length_val = $computed['length']; 229 $width_val = $computed['width']; 230 $height_val = $computed['height']; 231 $weight_val = $computed['weight']; 232 } 233 234 // Convert to standard units: cm for dimensions, g for weight 235 try { 236 $length = new Length($length_val, $dimension_unit); 237 $length_cm = (float) $length->toUnit('cm'); 238 } catch (Exception $e) { 239 $length_cm = (float) $length_val; 240 } 241 try { 242 $width = new Length($width_val, $dimension_unit); 243 $width_cm = (float) $width->toUnit('cm'); 244 } catch (Exception $e) { 245 $width_cm = (float) $width_val; 246 } 247 try { 248 $height = new Length($height_val, $dimension_unit); 249 $height_cm = (float) $height->toUnit('cm'); 250 } catch (Exception $e) { 251 $height_cm = (float) $height_val; 252 } 253 try { 254 $mass = new Mass($weight_val, $weight_unit); 255 $weight_g = (float) $mass->toUnit('g'); 256 } catch (Exception $e) { 257 $weight_g = (float) $weight_val; 258 } 259 260 if ($weight_g < 100) $weight_g = 100; // minimum 100g 261 if ($length_cm <= 0) $length_cm = 0.5; 262 if ($width_cm <= 0) $width_cm = 0.5; 263 if ($height_cm <= 0) $height_cm = 0.5; 264 265 return [ 266 'length_cm' => $length_cm, 267 'width_cm' => $width_cm, 268 'height_cm' => $height_cm, 269 'weight_g' => $weight_g, 270 ]; 162 271 } 163 272 … … 233 342 require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/shipping_providers/ekart.php'; 234 343 require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/shipping_providers/courier_karo.php'; 344 require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/shipping_providers/proship.php'; 235 345 236 346 require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-bt-sync-shipment-tracking-rest.php'; … … 255 365 $this->ekart = new Bt_Sync_Shipment_Tracking_Ekart(); 256 366 $this->courierkaro = new Bt_Sync_Shipment_Tracking_CourierKaro(); 367 $this->proship = new Bt_Sync_Shipment_Tracking_Proship(); 257 368 ( new Bt_Sync_Shipment_Tracking_Review() )->hooks(); 258 369 } … … 266 377 private function define_cron_events() { 267 378 268 $this->crons = new Bt_Sync_Shipment_Tracking_Crons($this->shiprocket,$this->shyplite,$this->nimbuspost_new,$this->shipmozo, $this->licenser, $this->delhivery, $this-> ship24, $this->fship, $this->ekart);379 $this->crons = new Bt_Sync_Shipment_Tracking_Crons($this->shiprocket,$this->shyplite,$this->nimbuspost_new,$this->shipmozo, $this->licenser, $this->delhivery, $this->fship, $this->courierkaro, $this->proship); 269 380 270 381 $this->loader->add_action( Bt_Sync_Shipment_Tracking_Crons::BT_MINUTELY_JOB, $this->crons, 'minutely_job'); … … 285 396 private function define_rest_apis() { 286 397 287 $rest = new Bt_Sync_Shipment_Tracking_Rest( $this->get_plugin_name(), $this->get_version(), $this->shiprocket, $this->shyplite, $this->nimbuspost, $this->manual, $this->xpressbees, $this->shipmozo, $this->nimbuspost_new, $this->ship24, $this->ekart, $this->courierkaro, $this->delhivery );398 $rest = new Bt_Sync_Shipment_Tracking_Rest( $this->get_plugin_name(), $this->get_version(), $this->shiprocket, $this->shyplite, $this->nimbuspost, $this->manual, $this->xpressbees, $this->shipmozo, $this->nimbuspost_new, $this->ship24, $this->ekart, $this->courierkaro, $this->delhivery, $this->proship); 288 399 289 400 //shiprocket webhook & apis … … 314 425 $this->loader->add_action( 'rest_api_init', $rest, 'rest_ekart_webhook'); 315 426 $this->loader->add_action( 'rest_api_init', $rest, 'rest_delhivery_webhook'); 427 $this->loader->add_action( 'rest_api_init', $rest, 'rest_proship_webhook'); 316 428 // $this->loader->add_action( 'init', $rest, 'generate_random_webhook_secret_key'); 317 429 … … 351 463 private function define_admin_hooks() { 352 464 353 $plugin_admin = new Bt_Sync_Shipment_Tracking_Admin( $this->get_plugin_name(), $this->get_version(),$this->shiprocket,$this->shyplite, $this->nimbuspost, $this->manual, $this->licenser, $this->shipmozo, $this->nimbuspost_new, $this->delhivery, $this->ship24, $this->fship, $this->ekart, $this->courierkaro );465 $plugin_admin = new Bt_Sync_Shipment_Tracking_Admin( $this->get_plugin_name(), $this->get_version(),$this->shiprocket,$this->shyplite, $this->nimbuspost, $this->manual, $this->licenser, $this->shipmozo, $this->nimbuspost_new, $this->delhivery, $this->ship24, $this->fship, $this->ekart, $this->courierkaro, $this->proship); 354 466 $this->loader->add_action( 'dokan_order_detail_after_order_general_details',$plugin_admin, 'custom_dokan_order_details', 10, 1 ); 355 467 $this->loader->add_action('carbon_fields_save_post',$plugin_admin, 'update_woocommerce_data_on_carbon_fields_save', 10, 3); … … 379 491 $this->loader-> add_filter('wc_order_statuses',$plugin_admin, 'add_custom_status_to_wc_order_statuses'); 380 492 $this->loader->add_action( 'admin_init', $plugin_admin, 'handle_admin_init'); 381 $this->loader->add_action('admin_menu', $plugin_admin, 'bt_add_admin_menu', 0);493 $this->loader->add_action('admin_menu', $plugin_admin, 'bt_add_admin_menu',10); 382 494 383 495 //$this->loader->add_action( 'init', $plugin_admin, 'register_shipment_arrival_order_status'); … … 390 502 $this->loader->add_action( 'bt_push_order_to_ekart', $plugin_admin, 'push_order_to_ekart',10,3); 391 503 $this->loader->add_action( 'bt_push_order_to_courierkaro', $plugin_admin, 'push_order_to_courierkaro',10,3); 504 $this->loader->add_action( 'bt_push_order_to_proship', $plugin_admin, 'push_order_to_proship',10,3); 392 505 $this->loader->add_action( 'bt_push_order_to_nimbuspost', $plugin_admin, 'push_order_to_nimbuspost',10,3); 393 506 394 $ajax_functions = new Bt_Sync_Shipment_Tracking_Admin_Ajax_Functions($this->crons, $this->shiprocket, $this->shyplite, $this->nimbuspost, $this->manual, $this->licenser, $this->delhivery, $this->ship24, $this->fship, $this->ekart );507 $ajax_functions = new Bt_Sync_Shipment_Tracking_Admin_Ajax_Functions($this->crons, $this->shiprocket, $this->shyplite, $this->nimbuspost, $this->manual, $this->licenser, $this->delhivery, $this->ship24, $this->fship, $this->ekart, $this->proship); 395 508 $this->loader->add_action( 'wp_ajax_sync_now_shyplite', $ajax_functions, 'bt_sync_now_shyplite',10,2); 396 509 … … 400 513 $this->loader->add_action('wp_ajax_bt_tracking_manual',$ajax_functions, 'bt_tracking_manual'); 401 514 $this->loader->add_action('wp_ajax_save_order_awb_number',$ajax_functions, 'save_order_awb_number'); 515 $this->loader->add_action('wp_ajax_save_package_dimensions',$ajax_functions, 'save_package_dimensions'); 402 516 $this->loader->add_action('wp_ajax_post_customer_feedback_to_sever',$ajax_functions, 'post_customer_feedback_to_sever'); 403 517 … … 414 528 $this->loader->add_action( 'wp_ajax_api_call_for_delhivery_test_connection', $plugin_admin, 'api_call_for_delhivery_test_connection' ); 415 529 $this->loader->add_action( 'wp_ajax_api_call_for_fship_test_connection', $plugin_admin, 'api_call_for_fship_test_connection' ); 530 $this->loader->add_action( 'wp_ajax_api_call_for_proship_test_connection', $plugin_admin, 'api_call_for_proship_test_connection' ); 416 531 $this->loader->add_action( 'wp_ajax_api_call_for_ekart_test_connection', $plugin_admin, 'api_call_for_ekart_test_connection' ); 417 532 $this->loader->add_action( 'wp_ajax_api_call_for_ship24_test_connection', $plugin_admin, 'api_call_for_ship24_test_connection' ); … … 2009 2124 } 2010 2125 2126 if(is_array($enabled_shipping_providers) && in_array('proship', $enabled_shipping_providers)){ 2127 $proship_webhook_time = get_option('proship_webhook_called', 'never'); 2128 if($proship_webhook_time!="never"){ 2129 $proship_webhook_time = date('Y-m-d H:i:s', $proship_webhook_time); 2130 } 2131 $container->add_tab( __( 'Proship' ), array( 2132 2133 Field::make( 'html', 'bt_sst_proship_webhook_html', __( 'Proship Webhook URL' ) ) 2134 ->set_html( 2135 sprintf( ' 2136 <b>Proship Webhook URL: [<a target="_blank" href="https://www.proship.in/view-webhook">Configure Webhook Here</a>] </b> 2137 <p>'.get_site_url(null, '/wp-json/bt-sync-shipment-tracking-proship/v1.0.0/webhook_receiver').'<a href="#" class="bt_sst_copy_link" > Copy Link</a> </p> 2138 <p>Last Webhook Called On: '.$proship_webhook_time.'</p> 2139 ') 2140 ), 2141 Field::make( 'text', 'bt_sst_proship_user_email', __( 'E-mail' ) ) 2142 ->set_width( 50 ), 2143 Field::make( 'text', 'bt_sst_proship_user_password', __( 'Password' ) ) 2144 ->set_width( 50 ), 2145 2146 Field::make( 'html', 'bt_sst_test_connection_proship' ) 2147 ->set_html(' 2148 <div style="margin-bottom: 20px;"> 2149 <button type="button" class="button button-secondary" id="api_test_connection_btn_proship">Test Connection</button> 2150 <p class="description">Save changes before testing connection.</p> 2151 </div> 2152 '), 2153 2154 Field::make( 'text', 'bt_sst_proship_from_name', __( 'Sender/Address Name' ) ) 2155 ->set_width( 50 ), 2156 Field::make( 'text', 'bt_sst_proship_from_phone', __( 'Phone Number' ) ) 2157 ->set_width( 50 ), 2158 2159 Field::make( 'textarea', 'bt_sst_proship_from_address', __( 'Address' ) ) 2160 ->set_rows(2), 2161 2162 Field::make( 'text', 'bt_sst_proship_from_addressline', __( 'Address Line 2' ) ) 2163 ->set_width( 33 ), 2164 Field::make( 'text', 'bt_sst_proship_from_email', __( 'Contact Email' ) ) 2165 ->set_width( 33 ), 2166 2167 Field::make( 'text', 'bt_sst_proship_from_city', __( 'City' ) )->set_width( 33 ), 2168 Field::make( 'text', 'bt_sst_proship_from_state', __( 'State' ) )->set_width( 33 ), 2169 Field::make( 'text', 'bt_sst_proship_from_pincode', __( 'Pincode' ) )->set_width( 33 ), 2170 2171 Field::make( 'text', 'bt_sst_proship_from_gstin', __( 'GSTIN' ) ) 2172 ->set_width( 33 ), 2173 Field::make( 'select', 'bt_sst_proship_cron_schedule', __( 'Sync Tracking Interval' ) ) 2174 ->add_options( array( 2175 'never' => 'Never', 2176 '15mins' => '15 Minutes', 2177 '1hour' => '1 Hour', 2178 '4hours' => '4 Hours', 2179 '24hours' => '24 Hours', 2180 ) ), 2181 Field::make( 'checkbox', 'bt_sst_proship_push_orders', __( 'Push orders to Proship') ) 2182 ->set_classes( 'title is-6' ) 2183 ->set_help_text( 'Plugin will push "processing" orders to Proship. Use this if Proship\'s Order Pull is not working correctly. 2184 <br>This feature also pushes correct order weight and dimensions of package to Proship, it helps in reducing weight discrepancy issues. 2185 <br>For this option to work, make sure that the weight and dimensions are correctly set for every product. Keep some packaging buffer for better accuracy in calculation. 2186 ' ), 2187 )); 2188 } 2189 2011 2190 if(is_array($enabled_shipping_providers) && in_array('fship',$enabled_shipping_providers)){ 2012 2191 … … 2178 2357 'fship' => 'Fship', 2179 2358 'ekart' => 'Ekart', 2359 'proship' => 'Proship', 2180 2360 ) ) 2181 2361 ->set_help_text(' … … 2431 2611 'fship' => 'Fship', 2432 2612 'ekart' => 'Ekart', 2613 'proship' => 'Proship', 2433 2614 2434 2615 … … 2523 2704 ) 2524 2705 ) ), 2706 Field::make( 'text', 'bt_sst_proship_fall_back_rate', __( 'Fall Back Rate (Per 500gm)' ) ) 2707 ->set_attribute( 'type', 'number' ) 2708 ->set_help_text( 'Fallback rate is used when no courier is available between any pickup/delivery combination. Leave it empty if you do not want to use any fallback rate.' ) 2709 ->set_conditional_logic( array( 2710 array( 2711 'field' => 'bt_sst_select_courier_company', 2712 'value' => true, 2713 ), 2714 array( 2715 'field' => 'bt_sst_courier_rate_provider', 2716 'value' => 'proship', 2717 ) 2718 ) ), 2525 2719 Field::make( 'text', 'bt_sst_ekart_fall_back_rate', __( 'Fall Back Rate (Per 500gm)' ) ) 2526 2720 ->set_attribute( 'type', 'number' ) … … 2598 2792 'field' => 'bt_sst_courier_rate_provider', 2599 2793 'compare' => 'IN', 2600 'value' => array('shiprocket','shipmozo','delhivery' ),2794 'value' => array('shiprocket','shipmozo','delhivery','proship'), 2601 2795 ) 2602 2796 ) ), … … 2785 2979 private function define_public_hooks() { 2786 2980 2787 $plugin_public = new Bt_Sync_Shipment_Tracking_Public( $this->get_plugin_name(), $this->get_version() ,$this->shiprocket, $this->shipmozo, $this->nimbuspost_new, $this->licenser, $this->delhivery, $this->fship, $this->ekart );2981 $plugin_public = new Bt_Sync_Shipment_Tracking_Public( $this->get_plugin_name(), $this->get_version() ,$this->shiprocket, $this->shipmozo, $this->nimbuspost_new, $this->licenser, $this->delhivery, $this->fship, $this->ekart, $this->proship); 2788 2982 2789 2983 // $pincode_checker_location_hook = carbon_get_theme_option( 'bt_sst_pincode_checker_location' ); -
shipment-tracker-for-woocommerce/trunk/includes/models/class-bt-sync-shipment-tracking-shipment-model.php
r3256359 r3460036 144 144 }else if($this->shipping_provider=="delhivery"){ 145 145 return "https://www.delhivery.com/track/package/" . $this->awb; 146 }else if($this->shipping_provider=="proship"){ 147 return "https://tracking.proship.in/?searchBy=waybill&ref_awb_number=" . $this->awb; 148 }else if($this->shipping_provider=="ekart"){ 149 return "https://www.ekartlogistics.com/ekartlogistics-web/shipmenttrack/" . $this->awb; 146 150 } 147 151 -
shipment-tracker-for-woocommerce/trunk/includes/shipping_providers/ekart.php
r3388085 r3460036 86 86 public function push_order_to_ekart($order_id) 87 87 { 88 $order = wc_get_order($order_id); 88 89 $token = $this->get_access_token(); 89 90 if (! $token) { 91 $order->add_order_note('❌ Ekart: Failed to get access token.'); 90 92 return null; 91 93 } … … 93 95 $order_payload = $this->get_ekart_order_object($order_id); 94 96 if (! $order_payload) { 97 $order->add_order_note('❌ Ekart: order payload error.'); 95 98 return null; 96 99 } … … 112 115 if (is_wp_error($response)) { 113 116 error_log("Ekart push_order WP error: " . $response->get_error_message()); 117 $order->add_order_note('❌ Ekart API request failed: ' . $error_msg); 114 118 return null; 115 119 } … … 118 122 119 123 $resp = json_decode($body_raw, true); 120 if (! is_array($resp)) { 124 125 if($resp['description']){ 126 $order->add_order_note('❌ Ekart response JSON parse error.'. $resp['description']); 121 127 error_log("Ekart push_order JSON parse error: " . json_last_error_msg()); 122 128 return null; … … 269 275 "consignee_name" => $consignee_name, 270 276 "products_desc" => implode(', ', $products_desc), 271 "payment_mode" => $order->get_payment_method()=="cod"?"COD":"P REPAID",277 "payment_mode" => $order->get_payment_method()=="cod"?"COD":"Prepaid", 272 278 "total_amount" => (int)$order->get_total(), 273 279 "tax_value" => floatval($order->get_total_tax()), … … 371 377 $resp=null; 372 378 if(!empty($tracking_id = Bt_Sync_Shipment_Tracking::bt_sst_get_order_meta($order_id, "_bt_ekart_tracking_id"))){ 379 $resp= $this->get_order_tracking_by_tracking_id($tracking_id); 380 } 381 if($resp == null){ 382 $tracking_id = Bt_Sync_Shipment_Tracking::bt_sst_get_order_meta($order_id, "_bt_shipping_awb"); 373 383 $resp= $this->get_order_tracking_by_tracking_id($tracking_id); 374 384 } -
shipment-tracker-for-woocommerce/trunk/public/class-bt-sync-shipment-tracking-public.php
r3371805 r3460036 50 50 private $fship; 51 51 private $ekart; 52 private $proship; 52 53 53 54 /** … … 58 59 * @param string $version The version of this plugin. 59 60 */ 60 public function __construct($plugin_name, $version, $shiprocket, $shipmozo, $nimbuspost_new, $licenser, $delhivery, $fship, $ekart )61 public function __construct($plugin_name, $version, $shiprocket, $shipmozo, $nimbuspost_new, $licenser, $delhivery, $fship, $ekart, $proship) 61 62 { 62 63 … … 70 71 $this->fship = $fship; 71 72 $this->ekart = $ekart; 73 $this->proship = $proship; 72 74 } 73 75 … … 1203 1205 $city = $city_data['city']; 1204 1206 } 1207 }else if ($pickup_data_provider == 'proship') { 1208 $express_tat = null; 1209 if (false === ($bt_sst_cached_delivery_estimates_proship = get_transient('bt_sst_cached_delivery_estimates_proship'))) { 1210 $bt_sst_cached_delivery_estimates_proship = array(); 1211 } 1212 1213 if ($delivery_country == "IN") { 1214 $pickup_pin = carbon_get_theme_option( 1215 "bt_sst_proship_from_pincode" 1216 ); 1217 $default_mode = carbon_get_theme_option('bt_sst_proship_default_mode'); 1218 $payment_type = 'PREPAID'; 1219 $length = 10; 1220 $breadth = 10; 1221 $height = 10; 1222 $weight = '1'; 1223 $dispatch_mode = "SURFACE"; 1224 $cod_amount = 100; 1225 $order_type = 'FORWARD'; 1226 if (!empty($pickup_pin)) { 1227 $cached_pincode_key = $pickup_pin . "_" . $delivery_pincode . "_3"; 1228 if (isset($bt_sst_cached_delivery_estimates_proship[$cached_pincode_key])) { 1229 $push_resp = $bt_sst_cached_delivery_estimates_proship[$cached_pincode_key][0]; 1230 $express_tat = $bt_sst_cached_delivery_estimates_proship[$cached_pincode_key][1]; 1231 $response["message"] = "Data fetched from cache."; 1232 } else { 1233 $push_resp = $this->proship->get_proship_pricing( 1234 $pickup_pin, 1235 $delivery_pincode, 1236 $payment_type, 1237 $length, 1238 $breadth, 1239 $height, 1240 $weight, 1241 "SURFACE", 1242 $cod_amount, 1243 $order_type 1244 ); 1245 1246 if (!isset($push_resp["error"]) && $push_resp != null && !empty($push_resp) && sizeof($push_resp) > 0) { 1247 $bt_sst_cached_delivery_estimates_proship[$cached_pincode_key] = [$push_resp, $express_tat]; 1248 set_transient('bt_sst_cached_delivery_estimates_proship', $bt_sst_cached_delivery_estimates_proship, 1 * HOUR_IN_SECONDS); 1249 $response["message"] = "Data fetched from Delhivery."; 1250 } else { 1251 $push_resp = []; 1252 } 1253 } 1254 } 1255 1256 } 1257 1258 $filtered_arr = $push_resp; 1259 $minMinTat = min(array_column($filtered_arr, 'providerMinTatDays')); 1260 $fastest = array_filter($filtered_arr, function ($item) use ($minMinTat) { 1261 return $item['providerMinTatDays'] == $minMinTat; 1262 }); 1263 $minMaxTat = min(array_column($fastest, 'providerMaxTatDays')); 1264 $fastest = array_filter($fastest, function ($item) use ($minMaxTat) { 1265 return $item['providerMaxTatDays'] == $minMaxTat; 1266 }); 1267 1268 usort($fastest, function ($a, $b) { 1269 return $a['priceAfterTax'] <=> $b['priceAfterTax']; 1270 }); 1271 1272 $filtered_arr = $fastest[0]; 1273 1274 if (is_array($filtered_arr) && sizeof($filtered_arr) > 0) { 1275 $check_error_for_hide_show_ponbox["data"] = true; 1276 $max_date_charges = $filtered_arr['priceAfterTax']; 1277 $min_date_charges = $filtered_arr['priceAfterTax']; 1278 1279 $max_courier_name = 'proship'; 1280 $min_courier_name = 'proship'; 1281 1282 $min_days = 2; 1283 $max_days = 5; 1284 $express_tat = $filtered_arr['providerMaxTatDays']; 1285 if ($express_tat != null) { 1286 $min_days = $express_tat; 1287 $max_days = $express_tat; 1288 } 1289 1290 if (!$min_days) { 1291 $min_days = 1; 1292 } 1293 if (!$max_days) { 1294 $max_days = 1; 1295 } 1296 $current_date = new DateTime(); 1297 $min_date = $current_date->add(new DateInterval("P{$min_days}D"))->format("l, d M, Y"); 1298 $max_date = $current_date->add(new DateInterval("P{$max_days}D"))->format("l, d M, Y"); 1299 1300 $processing_days = $this->bt_get_processing_days($product_id, $variation_id); 1301 if (!$processing_days) { 1302 $processing_days = carbon_get_theme_option("bt_sst_shiprocket_processing_days"); 1303 } 1304 1305 if (!$is_premium) { 1306 $processing_days = 0; //if not premium, then no processing days. 1307 } 1308 if ($processing_days && $processing_days > 0) { 1309 $min_date = $this->addDayswithdate($min_date, $processing_days); 1310 $max_date = $this->addDayswithdate($max_date, $processing_days); 1311 } else { 1312 $min_date = $this->addDayswithdate($min_date, 0); 1313 $max_date = $this->addDayswithdate($max_date, 0); 1314 } 1315 $check_error_for_hide_show_ponbox["data"] = true; 1316 } else { 1317 $bt_sst_message_text_template = "Delivery not available. Try a different pincode or contact support."; 1318 } 1319 $city = $delivery_pincode; 1320 // $city_data = $this->delhivery->get_locality($delivery_pincode); 1321 // if (isset($city_data['city'])) { 1322 // $city = $city_data['city']; 1323 // } 1205 1324 } 1206 1325 … … 2584 2703 } 2585 2704 2586 } else if ($bt_sst_courier_rate_provider == 'ekart') {2705 } else if ($bt_sst_courier_rate_provider == 'ekart') { 2587 2706 $cart_totals = $this->get_cart_weight_and_dimentions(); 2588 2707 $weight_in_kg = $cart_totals['total_weight_kg']; … … 2745 2864 2746 2865 2866 } 2867 } 2868 2869 } else if ($bt_sst_courier_rate_provider == 'proship') { 2870 2871 $cart_totals = $this->get_cart_weight_and_dimentions(); 2872 2873 $weight_in_kg = $cart_totals['total_weight_kg']; 2874 $length_in_cms = $cart_totals['total_length_cm']; 2875 $breadth_in_cms = $cart_totals['total_width_cm']; 2876 $height_in_cms = $cart_totals['total_height_cm']; 2877 $declared_value = $cart_totals['declared_value']; 2878 2879 if ($weight_in_kg < 0.1) { 2880 $weight_in_kg = 0.1; 2881 } 2882 if ($length_in_cms < 1) { 2883 $length_in_cms = 10; 2884 } 2885 if ($breadth_in_cms < 1) { 2886 $breadth_in_cms = 10; 2887 } 2888 if ($height_in_cms < 1) { 2889 $height_in_cms = 10; 2890 } 2891 2892 if ($weight_in_kg > 0) { 2893 2894 if (false === ($bt_sst_cached_delivery_estimates_proship = get_transient('bt_sst_cached_delivery_estimates_proship'))) { 2895 $bt_sst_cached_delivery_estimates_proship = array(); 2896 } 2897 if ($delivery_country == "IN") { 2898 $pickup_pincode = carbon_get_theme_option('bt_sst_proship_from_pincode'); 2899 2900 if (!empty($pickup_pincode)) { 2901 $pm = $cod == 1 ? "COD" : "PREPAID"; 2902 $cached_pincode_key = $pickup_pincode . "_" . $delivery_pincode . "_" . $weight_in_kg . '_' . $pm; 2903 if (isset($bt_sst_cached_delivery_estimates_proship[$cached_pincode_key])) { 2904 $push_resp = $bt_sst_cached_delivery_estimates_proship[$cached_pincode_key]; 2905 } else { 2906 $cod_amount = $cod == 1 ? $declared_value : 0; 2907 $push_resp = $this->proship->get_proship_pricing( 2908 $pickup_pincode, 2909 $delivery_pincode, 2910 $pm, 2911 $length_in_cms, 2912 $breadth_in_cms, 2913 $height_in_cms, 2914 $weight_in_kg, 2915 "SURFACE", 2916 $cod_amount, 2917 "FORWARD", 2918 ); 2919 if ($push_resp != null && !empty($push_resp)) { 2920 $bt_sst_cached_delivery_estimates_proship[$cached_pincode_key] = $push_resp; 2921 set_transient('bt_sst_cached_delivery_estimates_proship', $bt_sst_cached_delivery_estimates_proship, 1 * HOUR_IN_SECONDS); 2922 } else { 2923 $push_resp = []; 2924 } 2925 } 2926 $filtered_arr = $push_resp; 2927 } 2928 2929 2930 } 2931 } 2932 2933 $free_shipping_rates = []; 2934 foreach ($rates as $key => $r) { 2935 if (strpos($key, 'free_shipping') !== false) { 2936 $free_shipping_rates[$key] = $r; 2937 } 2938 } 2939 $rates = $free_shipping_rates; 2940 2941 if ($filtered_arr == null || sizeof($filtered_arr) == 0) { 2942 2943 if ($delivery_country == "IN") { 2944 $cost = carbon_get_theme_option("bt_sst_proship_fall_back_rate"); 2945 if ($cost && $cost > 0) { 2946 $WC_Shipping_Rate = new WC_Shipping_Rate(); 2947 $id = 'flat_rate:proship:fallback'; 2948 $WC_Shipping_Rate->set_id($id); 2949 $WC_Shipping_Rate->set_label('Flat rate'); 2950 $WC_Shipping_Rate->set_method_id($id); 2951 2952 if ($weight_in_kg > 0.5) { 2953 $t_weight = $weight_in_kg / 0.5; 2954 $t_weight = ceil($t_weight); 2955 $cost = round($t_weight * $cost); 2956 } 2957 2958 $WC_Shipping_Rate->set_cost($cost); 2959 $WC_Shipping_Rate->set_instance_id($id); 2960 $bt_sst_shipping_duration_days = 4; 2961 $WC_Shipping_Rate->add_meta_data('bt_sst_shipping_duration_days', $bt_sst_shipping_duration_days); 2962 2963 $rates[$id] = $WC_Shipping_Rate; 2964 } 2965 } else { 2966 //to handle international fallback rate 2967 } 2968 } else { 2969 2970 if ($delivery_country == "IN") { 2971 usort($filtered_arr, function ($a, $b) { 2972 return ($a['priceAfterTax'] - ($b['priceAfterTax'])); 2973 }); 2974 $i = 0; 2975 foreach ($filtered_arr as $rb) { 2976 $lable = "Proship " . ucfirst($rb['provider']['parent']); 2977 $bt_sst_shipping_duration_days = null; 2978 $bt_sst_shipping_edd = null; 2979 if (isset($rb['providerMaxTatDays']) && $rb['providerMaxTatDays'] != null) { 2980 $bt_sst_shipping_duration_days = $rb['providerMaxTatDays']; 2981 $bt_sst_shipping_edd = new DateTime("+" . $bt_sst_shipping_duration_days . " days"); 2982 } 2983 $id = 'flat_rate:delhivery:' . $rb['provider']['parent']; 2984 $method_id = 'flat_rate'; 2985 $markup_cost = carbon_get_theme_option( 2986 "bt_sst_markup_charges" 2987 ); 2988 if (!$markup_cost) { 2989 $markup_cost = 0; 2990 } 2991 if (($rb['priceAfterTax'] + $markup_cost) < 0) { 2992 $markup_cost = 0; 2993 } 2994 2995 $delivery_charge = 0; 2996 if ($cod == 1) { 2997 $two_percent = $rb['total_amopriceAfterTaxunt'] * (2 / 100); 2998 if ($two_percent > 40) { 2999 $delivery_charge = $two_percent; 3000 } else { 3001 $delivery_charge = 40; 3002 } 3003 } 3004 $cost = round($rb['priceAfterTax'] + $markup_cost + $delivery_charge, 2); 3005 3006 3007 $texes = []; 3008 $delivery_date = ''; 3009 $processing_days = $this->bt_get_processing_days(); 3010 if (!$processing_days) { 3011 $processing_days = carbon_get_theme_option("bt_sst_shipment_processing_days"); 3012 } 3013 if (!$processing_days || $processing_days < 0) { 3014 $processing_days = 0; 3015 } 3016 $delivery_date = $this->addDayswithdate($bt_sst_shipping_edd->format('Y-m-d H:i:s'), $processing_days); 3017 3018 $show_delivery_date = carbon_get_theme_option("bt_sst_show_delivery_date"); 3019 if ($show_delivery_date == 1) { 3020 $lable .= " (Edd: " . $delivery_date . ")"; 3021 } 3022 3023 $WC_Shipping_Rate = new WC_Shipping_Rate(); 3024 3025 $WC_Shipping_Rate->add_meta_data("edd", $delivery_date); 3026 $WC_Shipping_Rate->set_id($id); 3027 $WC_Shipping_Rate->set_label($lable); 3028 $WC_Shipping_Rate->set_method_id($method_id); 3029 $WC_Shipping_Rate->set_cost($cost); 3030 $WC_Shipping_Rate->set_instance_id($id); 3031 $WC_Shipping_Rate->set_taxes($texes); 3032 $WC_Shipping_Rate->add_meta_data('bt_sst_courier_company_name', $lable); 3033 $WC_Shipping_Rate->add_meta_data('bt_sst_shipment_provider', 'delhivery'); 3034 $WC_Shipping_Rate->add_meta_data('bt_sst_shipping_duration_days', $bt_sst_shipping_duration_days); 3035 $WC_Shipping_Rate->add_meta_data('bt_sst_processing_days', $processing_days); 3036 $rates[$id] = $WC_Shipping_Rate; 3037 } 2747 3038 } 2748 3039 } -
shipment-tracker-for-woocommerce/trunk/public/partials/bt_shipping_tracking_form_2.php
r3338305 r3460036 76 76 $currentPin = ""; 77 77 $currentCountry = ""; 78 $delivery_date_sms = ""; 79 $delivery_date_sms_date = $the_order->get_meta('_bt_shipment_tracking')->delivery_date; 80 if($delivery_date_sms_date){ 81 $delivery_date_sms = DateTime::createFromFormat('Y-m-d H:i:s', $delivery_date_sms_date) ?: DateTime::createFromFormat('Y-m-d', $delivery_date_sms_date); 82 } 83 78 84 79 85 $delivery_status = ""; … … 143 149 144 150 145 146 if(stripos($shipment_status,'delivered')!==false && stripos($shipment_status,'rto')===false){ 151 if(strtolower($shipment_status) == 'delivered' && stripos($shipment_status,'rto')===false){ 147 152 $current_step = 4; 148 153 } else if(stripos($shipment_status,'out')!==false && stripos($shipment_status,'rto')===false && stripos($shipment_status,'pick')===false){ … … 162 167 } else{ 163 168 $shipped_string = bt_format_shipment_status($shipment_status); 164 $shipped_message = apply_filters( 'bt_sst_shipping_status_message', "Your order has been " . $shipped_string, $shipment_status ); 169 if(strtolower($shipment_status) == 'undelivered'){ 170 $shipped_message = apply_filters( 'bt_sst_shipping_status_message', "", $shipment_status ); 171 }else{ 172 $shipped_message = apply_filters( 'bt_sst_shipping_status_message', "Your order has been " . $shipped_string, $shipment_status ); 173 } 165 174 } 166 175 … … 272 281 <span class="snipcss0-17-50-51 obscure-Wb9zbk739"> 273 282 <?php 274 if ( $order_status == "cancelled" || $shipped_string == "canceled" || $order_status == "refunded" || $order_status == "failed") {283 if (strtolower($shipment_status) == "undelivered" || $order_status == "cancelled" || $shipped_string == "canceled" || $order_status == "refunded" || $order_status == "failed") { 275 284 echo '<span class="bt_st_order_canceled_icone">⚠</span>'; 276 285 } else { … … 330 339 <p class="snipcss0-16-79-80 bt_sst"> 331 340 <?php if($current_step>=4){ 341 if($delivery_date_sms){ 342 echo 'Yay! Your package was delivered on. '; 343 echo $delivery_date_sms->format('j M Y'); 344 }else{ 332 345 echo 'Yay! You should have already received your package.'; 346 } 333 347 } 334 echo esc_html($estimated_delivery_date);335 348 ?> 336 349 </p> -
shipment-tracker-for-woocommerce/trunk/public/partials/bt_shipping_tracking_page_template_second.php
r3431532 r3460036 164 164 } else{ 165 165 $shipped_string = bt_format_shipment_status($shipment_status); 166 $shipped_message = apply_filters( 'bt_sst_shipping_status_message', "Your order has been " . $shipped_string, $shipment_status ); 167 166 if(strtolower($shipment_status) == 'undelivered'){ 167 $shipped_message = apply_filters( 'bt_sst_shipping_status_message', "", $shipment_status ); 168 }else{ 169 $shipped_message = apply_filters( 'bt_sst_shipping_status_message', "Your order has been " . $shipped_string, $shipment_status ); 170 } 168 171 if(empty($shipped_string)){ 169 172 $shipped_string = "Shipping Soon"; … … 376 379 </div> 377 380 <div class="uabb-timeline-marker"> 378 <?php if ( $order_status == "cancelled" || $order_status == "canceled" || $order_status == "refunded" || $order_status == "failed") {381 <?php if (strtolower($shipment_status) == "undelivered" || $order_status == "cancelled" || $order_status == "canceled" || $order_status == "refunded" || $order_status == "failed") { 379 382 ?><i class="<?php if($current_step >1) { echo "bt_sst_selected_cancelled"; } ?>" aria-hidden="true"><img style="display:inline" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAADDUlEQVR4nO1Zy2oUQRRtfC1c+lj5+ABXQs+9TlYDVW1w4XZQdOnadWICBg1ksjdhIn6CqAsTQQX/QdEPMLoyiWiqZuhxHiW3cGZ0ppOu6q7uHmEuFAx00XNO1X2ce9vzpja1qaU2Va0ebXKYkQwXJMNnksMnyeG74PiLFv2WHD/qZwwXGgGW1ZJ3xCvamrOlC4LjquDwVXJUNktw+CIY1hoVPJ878P1rl88KBo8Fw5Yt8DEiDFuCY32/4p/JBbwI4JZksJcW+NhiuCvYlZuZAVe+f1xwfOIcOB9zrQ36L7fgr/snBcdXWYOXQxJb9J8uTz438HLoUm9V9dKJ1ATycBt54E1gPSV4uF0UeDkgUbqRCPxPDqclx52iCUgGe4lSLOX5wsHzQTysW4Gn6mhVpIKyat69YwxI7w3K5m7EsNUM/Ivmp89x1QZ8+/WmUt2uCmtLsfvDh/eU6nRU+90bJWdnbEjUjMCTyCKdYgW+bzEk+uD71rYgQXqLRGMsAa0qLVzhb0DaOh0VLi+Og19ejNzbtHC9BvMxloCWxBYBFj6YHwc2chOjJz/Ys3LfLpgDmDfx/+dWL40h4Qw8pwVP42+AGg/rFx9AotfVYN2AR6oJHwxcKLlUjiThCjzXayfehVI2KZrE6Knr2+ilBa8EwzB7AuTzkQTM6oRMSyCVC0UFbERgZ+pCMmkQR4Hv9aKDOCkJZhDEidLoIanSpE5Ip2nUtpAZ5HlnJBjMxRKgodPESgleAjMxx3A7sZg7JFWO3kSbxNxVM1ktGH42nuaRdE0kpw3yfJ+EDXipCcCKEfgJbWjCBiufMyagb4Fj3SrAMl3wyLO1H7PlU5PR1ONu4rkpzSqLJiAYVhOBH5DgsFGg66x5aY36UMHhRf4nD5uqUjmWmsBwuAtbObrNS2fD3ZEhbw6ZCdacnXyU0awyk+zE8FvqgLWamzJcpwLjwF1CyvOUtr28jaojyQ5j7fQv8G2SB9YVNgsjkUVDJ5rbkGanxoM6O/0BjySJ7vLg/Z9nc6QqJ+Iz69Sm5v3/9htwCyTCs1agAgAAAABJRU5ErkJggg=="></i> 380 383 <?php } else {?> -
shipment-tracker-for-woocommerce/trunk/vendor/composer/installed.json
r3446887 r3460036 3 3 { 4 4 "name": "doctrine/deprecations", 5 "version": "1.1. 5",6 "version_normalized": "1.1. 5.0",5 "version": "1.1.6", 6 "version_normalized": "1.1.6.0", 7 7 "source": { 8 8 "type": "git", 9 9 "url": "https://github.com/doctrine/deprecations.git", 10 "reference": " 459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38"11 }, 12 "dist": { 13 "type": "zip", 14 "url": "https://api.github.com/repos/doctrine/deprecations/zipball/ 459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38",15 "reference": " 459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38",10 "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca" 11 }, 12 "dist": { 13 "type": "zip", 14 "url": "https://api.github.com/repos/doctrine/deprecations/zipball/d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", 15 "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", 16 16 "shasum": "" 17 17 }, … … 20 20 }, 21 21 "conflict": { 22 "phpunit/phpunit": "<=7.5 || >=1 3"22 "phpunit/phpunit": "<=7.5 || >=14" 23 23 }, 24 24 "require-dev": { 25 "doctrine/coding-standard": "^9 || ^12 || ^1 3",26 "phpstan/phpstan": "1.4.10 || 2.1. 11",25 "doctrine/coding-standard": "^9 || ^12 || ^14", 26 "phpstan/phpstan": "1.4.10 || 2.1.30", 27 27 "phpstan/phpstan-phpunit": "^1.0 || ^2", 28 "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12 ",28 "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12.4 || ^13.0", 29 29 "psr/log": "^1 || ^2 || ^3" 30 30 }, … … 32 32 "psr/log": "Allows logging deprecations via PSR-3 logger implementation" 33 33 }, 34 "time": "202 5-04-07T20:06:18+00:00",34 "time": "2026-02-07T07:09:04+00:00", 35 35 "type": "library", 36 36 "installation-source": "dist", … … 48 48 "support": { 49 49 "issues": "https://github.com/doctrine/deprecations/issues", 50 "source": "https://github.com/doctrine/deprecations/tree/1.1. 5"50 "source": "https://github.com/doctrine/deprecations/tree/1.1.6" 51 51 }, 52 52 "install-path": "../doctrine/deprecations" … … 1030 1030 { 1031 1031 "name": "symfony/finder", 1032 "version": "v6.4.3 2",1033 "version_normalized": "6.4.3 2.0",1032 "version": "v6.4.33", 1033 "version_normalized": "6.4.33.0", 1034 1034 "source": { 1035 1035 "type": "git", 1036 1036 "url": "https://github.com/symfony/finder.git", 1037 "reference": " 3ec24885c1d9ababbb9c8f63bb42fea3c8c9b6de"1038 }, 1039 "dist": { 1040 "type": "zip", 1041 "url": "https://api.github.com/repos/symfony/finder/zipball/ 3ec24885c1d9ababbb9c8f63bb42fea3c8c9b6de",1042 "reference": " 3ec24885c1d9ababbb9c8f63bb42fea3c8c9b6de",1037 "reference": "24965ca011dac87431729640feef8bcf7b5523e0" 1038 }, 1039 "dist": { 1040 "type": "zip", 1041 "url": "https://api.github.com/repos/symfony/finder/zipball/24965ca011dac87431729640feef8bcf7b5523e0", 1042 "reference": "24965ca011dac87431729640feef8bcf7b5523e0", 1043 1043 "shasum": "" 1044 1044 }, … … 1049 1049 "symfony/filesystem": "^6.0|^7.0" 1050 1050 }, 1051 "time": "2026-01- 10T14:09:00+00:00",1051 "time": "2026-01-26T13:03:48+00:00", 1052 1052 "type": "library", 1053 1053 "installation-source": "dist", … … 1077 1077 "homepage": "https://symfony.com", 1078 1078 "support": { 1079 "source": "https://github.com/symfony/finder/tree/v6.4.3 2"1079 "source": "https://github.com/symfony/finder/tree/v6.4.33" 1080 1080 }, 1081 1081 "funding": [ -
shipment-tracker-for-woocommerce/trunk/vendor/composer/installed.php
r3446887 r3460036 4 4 'pretty_version' => 'dev-1.5.1.1', 5 5 'version' => '1.5.1.1-dev', 6 'reference' => ' 470374fa160dc655abfe5711bd19227d2f5fcb02',6 'reference' => '9aa388de288d231781b688da9f05c29e517c5d3b', 7 7 'type' => 'library', 8 8 'install_path' => __DIR__ . '/../../', … … 14 14 'pretty_version' => 'dev-1.5.1.1', 15 15 'version' => '1.5.1.1-dev', 16 'reference' => ' 470374fa160dc655abfe5711bd19227d2f5fcb02',16 'reference' => '9aa388de288d231781b688da9f05c29e517c5d3b', 17 17 'type' => 'library', 18 18 'install_path' => __DIR__ . '/../../', … … 21 21 ), 22 22 'doctrine/deprecations' => array( 23 'pretty_version' => '1.1. 5',24 'version' => '1.1. 5.0',25 'reference' => ' 459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38',23 'pretty_version' => '1.1.6', 24 'version' => '1.1.6.0', 25 'reference' => 'd4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca', 26 26 'type' => 'library', 27 27 'install_path' => __DIR__ . '/../doctrine/deprecations', … … 162 162 ), 163 163 'symfony/finder' => array( 164 'pretty_version' => 'v6.4.3 2',165 'version' => '6.4.3 2.0',166 'reference' => ' 3ec24885c1d9ababbb9c8f63bb42fea3c8c9b6de',164 'pretty_version' => 'v6.4.33', 165 'version' => '6.4.33.0', 166 'reference' => '24965ca011dac87431729640feef8bcf7b5523e0', 167 167 'type' => 'library', 168 168 'install_path' => __DIR__ . '/../symfony/finder', -
shipment-tracker-for-woocommerce/trunk/vendor/doctrine/deprecations/README.md
r3344861 r3460036 181 181 182 182 Note that you can still trigger Deprecations in your code, provided you use the 183 `#[WithoutErrorHandler]` attribute to disable PHPUnit's error handler for tests 184 that call it. Be wary that this will disable all error handling, meaning it 185 will mask any warnings or errors that would otherwise be caught by PHPUnit. 183 `#[IgnoreDeprecations]` to ignore them for tests that call it. 186 184 187 185 At the moment, it is not possible to disable deduplication with an environment -
shipment-tracker-for-woocommerce/trunk/vendor/doctrine/deprecations/composer.json
r3344861 r3460036 9 9 }, 10 10 "require-dev": { 11 "doctrine/coding-standard": "^9 || ^12 || ^1 3",12 "phpstan/phpstan": "1.4.10 || 2.1. 11",11 "doctrine/coding-standard": "^9 || ^12 || ^14", 12 "phpstan/phpstan": "1.4.10 || 2.1.30", 13 13 "phpstan/phpstan-phpunit": "^1.0 || ^2", 14 "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12 ",14 "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12.4 || ^13.0", 15 15 "psr/log": "^1 || ^2 || ^3" 16 16 }, 17 17 "conflict": { 18 "phpunit/phpunit": "<=7.5 || >=1 3"18 "phpunit/phpunit": "<=7.5 || >=14" 19 19 }, 20 20 "suggest": { -
shipment-tracker-for-woocommerce/trunk/vendor/doctrine/deprecations/src/PHPUnit/VerifyDeprecations.php
r3344861 r3460036 58 58 $actualCount === $expectation, 59 59 sprintf( 60 " Expected deprecation with identifier '%s' was triggered by code executed in test, but expected not to.",60 "Deprecation with identifier '%s' was triggered by code executed in test, but expected not to.", 61 61 $identifier 62 62 ) -
shipment-tracker-for-woocommerce/trunk/vendor/symfony/finder/Finder.php
r3446887 r3460036 682 682 683 683 foreach ($this->iterators as $it) { 684 $iterator->append( (static function () use ($it) {684 $iterator->append(new \IteratorIterator(new LazyIterator(static function () use ($it) { 685 685 foreach ($it as $file) { 686 686 if (!$file instanceof \SplFileInfo) { … … 694 694 yield $key => $file; 695 695 } 696 }) ());696 }))); 697 697 } 698 698 }
Note: See TracChangeset
for help on using the changeset viewer.