Changeset 2974250
- Timestamp:
- 10/03/2023 10:46:59 AM (2 years ago)
- Location:
- dhlpwc
- Files:
-
- 36 edited
- 1 copied
-
tags/2.0.16 (copied) (copied from dhlpwc/trunk)
-
tags/2.0.16/README.md (modified) (1 diff)
-
tags/2.0.16/assets/css/dhlpwc.admin.css (modified) (1 diff)
-
tags/2.0.16/assets/js/dhlpwc.metabox.js (modified) (7 diffs)
-
tags/2.0.16/dhlpwoocommerce.php (modified) (1 diff)
-
tags/2.0.16/includes/controller/admin/class-dhlpwc-controller-admin-order-metabox.php (modified) (3 diffs)
-
tags/2.0.16/includes/model/logic/class-dhlpwc-model-logic-shipment.php (modified) (1 diff)
-
tags/2.0.16/includes/model/service/class-dhlpwc-model-service-escape-output.php (modified) (1 diff)
-
tags/2.0.16/includes/model/service/class-dhlpwc-model-service-label-metabox.php (modified) (2 diffs)
-
tags/2.0.16/includes/model/service/class-dhlpwc-model-service-shipment.php (modified) (17 diffs)
-
tags/2.0.16/includes/model/service/class-dhlpwc-model-service-shipping-preset.php (modified) (1 diff)
-
tags/2.0.16/includes/view/order/meta.php (modified) (1 diff)
-
tags/2.0.16/includes/view/order/meta/form/sizes-container.php (modified) (1 diff)
-
tags/2.0.16/includes/view/order/meta/form/sizes-headline.php (modified) (1 diff)
-
tags/2.0.16/languages/dhlpwc-de_CH.po (modified) (1 diff)
-
tags/2.0.16/languages/dhlpwc-nl_BE.po (modified) (1 diff)
-
tags/2.0.16/languages/dhlpwc-nl_NL.po (modified) (1 diff)
-
tags/2.0.16/languages/dhlpwc.pot (modified) (1 diff)
-
tags/2.0.16/readme.txt (modified) (2 diffs)
-
trunk/README.md (modified) (1 diff)
-
trunk/assets/css/dhlpwc.admin.css (modified) (1 diff)
-
trunk/assets/js/dhlpwc.metabox.js (modified) (7 diffs)
-
trunk/dhlpwoocommerce.php (modified) (1 diff)
-
trunk/includes/controller/admin/class-dhlpwc-controller-admin-order-metabox.php (modified) (3 diffs)
-
trunk/includes/model/logic/class-dhlpwc-model-logic-shipment.php (modified) (1 diff)
-
trunk/includes/model/service/class-dhlpwc-model-service-escape-output.php (modified) (1 diff)
-
trunk/includes/model/service/class-dhlpwc-model-service-label-metabox.php (modified) (2 diffs)
-
trunk/includes/model/service/class-dhlpwc-model-service-shipment.php (modified) (17 diffs)
-
trunk/includes/model/service/class-dhlpwc-model-service-shipping-preset.php (modified) (1 diff)
-
trunk/includes/view/order/meta.php (modified) (1 diff)
-
trunk/includes/view/order/meta/form/sizes-container.php (modified) (1 diff)
-
trunk/includes/view/order/meta/form/sizes-headline.php (modified) (1 diff)
-
trunk/languages/dhlpwc-de_CH.po (modified) (1 diff)
-
trunk/languages/dhlpwc-nl_BE.po (modified) (1 diff)
-
trunk/languages/dhlpwc-nl_NL.po (modified) (1 diff)
-
trunk/languages/dhlpwc.pot (modified) (1 diff)
-
trunk/readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
dhlpwc/tags/2.0.16/README.md
r2966997 r2974250 1 1 # DHL Parcel for WooCommerce 2 3 v2.0.16 4 ## Changes 5 - Added the possibility to add multiple shipments through the label panel 6 - Update Expresser service time to reflect the correct new time 2 7 3 8 v2.0.15 -
dhlpwc/tags/2.0.16/assets/css/dhlpwc.admin.css
r2688414 r2974250 715 715 display:block; 716 716 } 717 718 /* Sizes */ 719 .dhlpwc-chosen-sizes { 720 counter-reset: dhlpwc-parcel-counter 0; 721 } 722 .dhlpwc-parcel-counter:before { 723 counter-increment: dhlpwc-parcel-counter 1; 724 content: counter(dhlpwc-parcel-counter); 725 } 726 727 .dhlpwc-chosen-size-template { 728 display: none; 729 } 730 731 .dhlpwc-order-metabox-form-parceltypes .dhlpwc-label-size-header { 732 display: none; 733 } 734 735 .dhlpwc-label-size-header { 736 margin-top: 10px; 737 font-weight: bold; 738 font-size: small; 739 } 740 741 .dhlpwc-chosen-size-container:nth-child(2) .dhlpwc-label-size-header { 742 margin-top: 0; 743 } 744 745 .dhlpwc-chosen-size-actions { 746 float: left; 747 margin: 5px 5px 0 0; 748 } 749 750 .dhlpwc-form-sizes, 751 .dhlpwc-chosen-size-info, 752 .dhlpwc-form-size-selections-edit { 753 overflow-x:hidden; 754 white-space: nowrap; 755 text-overflow: ellipsis; 756 } 757 758 .dhlpwc-chosen-size-info .dhlpwc-chosen-size { 759 display: block; 760 font-weight: 600; 761 } 762 763 .dhlpwc-chosen-sizes .dhlpwc-label-action { 764 display: inline-block; 765 text-indent: -9999px; 766 position: relative; 767 padding: 0 !important; 768 height: 2em; 769 width: 2em; 770 } 771 772 .dhlpwc-chosen-sizes .dhlpwc-label-action::after { 773 font-family: Dashicons; 774 speak: none; 775 font-weight: 400; 776 font-variant: normal; 777 text-transform: none; 778 -webkit-font-smoothing: antialiased; 779 margin: 0; 780 text-indent: 0; 781 position: absolute; 782 top: 0; 783 right: 0; 784 width: 100%; 785 height: 100%; 786 text-align: center; 787 content: "\f133"; 788 line-height: 1.85; 789 } 790 791 .dhlpwc-chosen-sizes .dhlpwc-label-action.dhlpwc-label-edit-piece::after { content: "\f203";} 792 .dhlpwc-chosen-sizes .dhlpwc-label-action.dhlpwc-label-delete-piece::after { content: "\f182";} -
dhlpwc/tags/2.0.16/assets/js/dhlpwc.metabox.js
r2966997 r2974250 5 5 6 6 jQuery(document).ready(function($) { 7 $(document.body).on('click', '#dhlpwc-label- create', function(e) {8 e.preventDefault();9 10 var label_size = $('.dhlpwc-label-create-size:checked').val(); 7 $(document.body).on('click', '#dhlpwc-label-add-piece', function(e) { 8 var label_size = $('input[name=dhlpwc-label-create-size]:checked').val(); 9 var label_size_info = $('input[name=dhlpwc-label-create-size]:checked').nextAll('i').first().html(); 10 11 11 if (typeof label_size === "undefined" ) { 12 12 // TODO update alert to a more user friendly user feedback … … 14 14 return; 15 15 } 16 17 var new_label_piece = $('.dhlpwc-chosen-size-template').first().clone(); 18 new_label_piece.removeClass('dhlpwc-chosen-size-template'); 19 new_label_piece.addClass('dhlpwc-chosen-size-container'); 20 new_label_piece.find('.dhlpwc-chosen-size').html(label_size); 21 new_label_piece.find('.dhlpwc-chosen-size + i').html(label_size_info); 22 23 new_label_piece.data({ 24 parcel_type: label_size, 25 quantity: 1 26 }); 27 new_label_piece.appendTo('.dhlpwc-chosen-sizes'); 28 29 $(document.body).trigger('dhlpwc:update_package_counter'); 30 31 }).on('click', '.dhlpwc-label-edit-piece', function(e) { 32 e.preventDefault(); 33 34 var container = $(this).closest('.dhlpwc-chosen-size-container'); 35 var chosen_size = container.data('parcel_type'); 36 var form_sizes = $('.dhlpwc-form-content.dhlpwc-form-sizes').clone(); 37 38 // Randomize name 39 form_sizes.find('input[type=radio]') 40 .attr('name', 'dhlpwc-label-edit-size-' + Math.floor(Math.random() * 26) + Date.now()) 41 .removeClass('dhlpwc-label-create-size') 42 .addClass('dhlpwc-label-edit-size') 43 .each(function() { 44 $(this).attr('checked', $(this).val() === chosen_size) 45 }); 46 47 container.find('.dhlpwc-chosen-size-selection').hide(); 48 container.find('.dhlpwc-form-size-selections-edit').show(); 49 container.find('.dhlpwc-form-size-selections-edit').html(form_sizes.html()); 50 51 }).on('click', '.dhlpwc-form-size-selections-edit .dhlpwc-label-edit-size', function(e) { 52 e.preventDefault(); 53 54 var container = $(this).closest('.dhlpwc-chosen-size-container'); 55 56 var label_size = $(this).val(); 57 var label_size_info = container.find('input.dhlpwc-label-edit-size[value="' + label_size + '"]').nextAll('i').first().html(); 58 59 container.find('.dhlpwc-chosen-size').html(label_size); 60 container.find('.dhlpwc-chosen-size + i').html(label_size_info); 61 container.data({ 62 parcel_type: label_size, 63 quantity: 1 64 }); 65 66 container.find('.dhlpwc-chosen-size-selection').show(); 67 container.find('.dhlpwc-form-size-selections-edit').hide(); 68 69 }).on('click', '.dhlpwc-label-delete-piece', function(e) { 70 e.preventDefault(); 71 72 var container = $(this).closest('.dhlpwc-chosen-size-container'); 73 container.remove(); 74 75 $(document.body).trigger('dhlpwc:update_package_counter'); 76 77 }).on('click', '#dhlpwc-label-create', function(e) { 78 e.preventDefault(); 16 79 17 80 var label_options = []; … … 32 95 security: $( '#dhlpwc-ajax-nonce' ).val(), 33 96 post_id: dhlpwc_metabox_object.post_id, 34 label_size: label_size,97 pieces: [], 35 98 label_options: label_options, 36 99 label_option_data: label_option_data, … … 39 102 }); 40 103 104 $('.dhlpwc-chosen-size-container').each(function (key, label_piece) { 105 data.pieces.push($(label_piece).data()); 106 }); 107 108 var label_size = $('input[name=dhlpwc-label-create-size]:checked').val(); 109 if (typeof label_size === "undefined" ) { 110 // TODO update alert to a more user friendly user feedback 111 alert('Select a label'); 112 return; 113 } 114 115 data.pieces.push({ 116 parcel_type: label_size, 117 quantity: 1 118 }) 119 41 120 // Click-2-much prevention 42 121 if ($('#dhlpwc-label').attr('metabox_busy') == 'true') { … … 47 126 } 48 127 49 $.post(ajaxurl, data, function (response) {128 $.post(ajaxurl, data, function (response) { 50 129 try { 51 view = response.data.view;130 view = response.data.view; 52 131 } catch(error) { 53 132 alert('Error'); … … 315 394 } 316 395 317 $('div.dhlpwc-order-metabox-form-parceltypes > .dhlpwc-form-content').html(view);396 $('div.dhlpwc-order-metabox-form-parceltypes .dhlpwc-form-sizes').html(view); 318 397 // Reselect the previous radio before the refresh, if possible 319 398 if (typeof label_size !== "undefined" ) { … … 323 402 $(document.body).trigger('dhlpwc:select_default_size'); 324 403 }, 'json'); 404 405 }).on('dhlpwc:update_package_counter', function() { 406 var headers = $('.dhlpwc-label-size-header').not($('.dhlpwc-chosen-size-template .dhlpwc-label-size-header')); 407 if (headers.length > 1) { 408 headers.show(); 409 } else { 410 headers.hide(); 411 } 325 412 326 413 }).on('dhlpwc:select_default_size', function() { -
dhlpwc/tags/2.0.16/dhlpwoocommerce.php
r2966997 r2974250 5 5 * Description: This is the official DHL Parcel for WooCommerce plugin. 6 6 * Author: DHL Parcel 7 * Version: 2.0.1 57 * Version: 2.0.16 8 8 * Requires at least: 4.7.16 9 9 * Tested up to: 6.3 -
dhlpwc/tags/2.0.16/includes/controller/admin/class-dhlpwc-controller-admin-order-metabox.php
r2966997 r2974250 118 118 { 119 119 $post_id = wc_clean($_POST['post_id']); 120 $label_size = wc_clean($_POST['label_size']);121 120 $label_options = isset($_POST['label_options']) && is_array($_POST['label_options']) ? wc_clean($_POST['label_options']) : array(); 122 121 $label_option_data = isset($_POST['label_option_data']) && is_array($_POST['label_option_data']) ? array_map(function ($var) { … … 124 123 }, $_POST['label_option_data']) : array(); 125 124 $to_business = (isset($_POST['to_business']) && wc_clean($_POST['to_business']) == 'yes') ? true : false; 125 $pieces = wc_clean($_POST['pieces']); 126 foreach ($pieces as &$piece) { 127 $piece['label_size'] = isset($piece['parcel_type']) ? $piece['parcel_type'] : 'SMALL'; 128 $piece['quantity'] = isset($piece['quantity']) ? (int)$piece['quantity'] : 1; 129 } 126 130 127 131 $service = DHLPWC_Model_Service_Shipment::instance(); 128 $success = $service->create($post_id, $ label_size, $label_options, $label_option_data, $to_business);132 $success = $service->create($post_id, $pieces, $label_options, $label_option_data, $to_business); 129 133 130 134 // Set Flash message … … 390 394 $view = new DHLPWC_Template('order.meta.form.sizes-container'); 391 395 $sizes_form = $view->render(array( 396 'header' => $metabox_service->sizes_header($preselected_options), 392 397 'content' => $metabox_service->sizes_form($order_id, $preselected_options, $to_business), 393 398 ), false); -
dhlpwc/tags/2.0.16/includes/model/logic/class-dhlpwc-model-logic-shipment.php
r2966997 r2974250 27 27 $request_options = $service->get_request_options($keys, $option_data); 28 28 29 // TODO temporary logic to create a piece 30 $pieces = array(); 31 $piece = new DHLPWC_Model_API_Data_Shipment_Piece(); 32 $piece->parcel_type = isset($options['label_size']) ? $options['label_size'] : 'SMALL'; 33 $piece->quantity = 1; 34 $pieces[] = $piece; 29 $pieces = array_map(function ($piece) { 30 return new DHLPWC_Model_API_Data_Shipment_Piece($piece); 31 }, $options['pieces']); 35 32 36 33 $shipment = new DHLPWC_Model_API_Data_Shipment_Request(array( -
dhlpwc/tags/2.0.16/includes/model/service/class-dhlpwc-model-service-escape-output.php
r2966997 r2974250 74 74 'rows' => array(), 75 75 'cols' => array(), 76 ), 77 'span' => array( 78 'class' => array(), 76 79 ), 77 80 ); -
dhlpwc/tags/2.0.16/includes/model/service/class-dhlpwc-model-service-label-metabox.php
r2966997 r2974250 270 270 } 271 271 272 public function sizes_ form($order_id, $selected_options, $to_business)272 public function sizes_header($selected_options) 273 273 { 274 274 $view = new DHLPWC_Template('order.meta.form.sizes-headline'); … … 281 281 ); 282 282 283 $size_view =$view->render(array(283 return $view->render(array( 284 284 'message' => implode(' + ', $option_texts), 285 285 ), false); 286 286 } 287 288 public function sizes_form($order_id, $selected_options, $to_business) 289 { 290 $size_view = ''; 287 291 $service = DHLPWC_Model_Service_Access_Control::instance(); 288 292 $sizes = $service->check(DHLPWC_Model_Service_Access_Control::ACCESS_CAPABILITY_PARCELTYPE, array( -
dhlpwc/tags/2.0.16/includes/model/service/class-dhlpwc-model-service-shipment.php
r2966997 r2974250 15 15 16 16 /** 17 * TODO update for multiple pieces in the future18 17 * Create a shipment with label data attached to order_id. Optionally, request specific sizes 19 18 * … … 22 21 * @return boolean 23 22 */ 24 public function create($order_id, $ label_size = null, $shipment_options = array(), $shipment_option_data = array(), $to_business = false)23 public function create($order_id, $pieces, $shipment_options = array(), $shipment_option_data = array(), $to_business = false) 25 24 { 26 25 $this->clear_error(self::CREATE_ERROR); … … 41 40 /** @var DHLPWC_Model_API_Data_Shipment_Request $shipment_data */ 42 41 $shipment_data = $logic->prepare_data($order_id, array( 43 ' label_size' => $label_size,44 'label_options' => $shipment_options, // TODO Temp45 'label_option_data' => $shipment_option_data, // TODO Temp42 'pieces' => $pieces, 43 'label_options' => $shipment_options, 44 'label_option_data' => $shipment_option_data, 46 45 'to_business' => $to_business, 47 46 ), $hide_sender_data); … … 91 90 92 91 $response = $logic->send_request($shipment_data); 93 if (!$response ) {92 if (!$response || empty($response['pieces'])) { 94 93 return false; 95 94 } 96 $label = $this->get_first_piece($response); 97 if (!$label) { 98 return false; 99 } 100 101 $label_data = array( 102 'label_id' => $label['labelId'], 103 'label_type' => $label['labelType'], 104 'label_size' => $label_size, 105 'tracker_code' => $label['trackerCode'], 106 'routing_code' => null, 107 'order_reference' => $label['orderReference'], 108 ); 109 110 // Save label request or not 111 $service = DHLPWC_Model_Service_Access_Control::instance(); 112 $debug_label_requests = $service->check(DHLPWC_Model_Service_Access_Control::ACCESS_LABEL_REQUEST); 113 if ($debug_label_requests) { 114 $label_data['request'] = json_encode($shipment_data); 115 } 116 117 // Create label do action hook 118 do_action('dhlpwc_create_label', $order_id, $label_data); 119 120 $meta = new DHLPWC_Model_Service_Order_Meta(); 121 $meta->save_label($order_id, $label_data); 95 96 97 $created_label_ids = $this->save_labels($response, $shipment_data, $order_id); 122 98 123 99 /** Create return label if requested */ … … 126 102 127 103 $return_response = $logic->send_request($return_shipment_data); 128 if (!$return_response ) {104 if (!$return_response || empty($response['pieces'])) { 129 105 // This failed. Remove original successfully created label as well and return. 130 $this->delete($order_id, $label['labelId']); 106 foreach ($created_label_ids as $label_id) { 107 $this->delete($order_id, $label_id); 108 } 109 131 110 return false; 132 111 } 133 $return_label = $this->get_first_piece($return_response); 134 if (!$return_label) { 135 // This failed. Remove original successfully created label as well and return. 136 $this->delete($order_id, $label['labelId']); 137 return false; 138 } 139 112 113 $this->save_labels($return_response, $return_shipment_data, $order_id, true); 114 } 115 116 $this->update_order_status($order_id); 117 118 return true; 119 } 120 121 protected function save_labels($response, $shipment_data, $order_id, $is_return = false) 122 { 123 $labels = $response['pieces']; 124 // We keep track of the label ids, used to remove these labels if creating a return label fails. 125 $created_label_ids = []; 126 foreach ($labels as $label) { 127 $created_label_ids[] = $label['labelId']; 140 128 $label_data = array( 141 'label_id' => $ return_label['labelId'],142 'label_type' => $ return_label['labelType'],143 'label_size' => $label _size,144 'tracker_code' => $ return_label['trackerCode'],129 'label_id' => $label['labelId'], 130 'label_type' => $label['labelType'], 131 'label_size' => $label['parcelType'], 132 'tracker_code' => $label['trackerCode'], 145 133 'routing_code' => null, 146 'order_reference' => $re turn_label['orderReference'],147 'is_return' => true,134 'order_reference' => $response['orderReference'], 135 'is_return' => $is_return 148 136 ); 149 137 … … 152 140 $debug_label_requests = $service->check(DHLPWC_Model_Service_Access_Control::ACCESS_LABEL_REQUEST); 153 141 if ($debug_label_requests) { 154 $label_data['request'] = json_encode($ return_shipment_data);142 $label_data['request'] = json_encode($shipment_data); 155 143 } 156 144 … … 158 146 do_action('dhlpwc_create_label', $order_id, $label_data); 159 147 160 $return_meta = new DHLPWC_Model_Service_Order_Meta(); 161 $return_meta->save_label($order_id, $label_data); 162 } 163 164 $this->update_order_status($order_id); 165 166 return true; 167 } 168 169 protected function get_first_piece($response) 170 { 171 // TODO currently the code handles single pieces, but can be expanded for multiple pieces in the future 172 if (empty($response['pieces'])) { 173 return false; 174 } 175 176 foreach($response['pieces'] as $label_response) { 177 if (!empty($label_response['labelId'])) { 178 $label = $label_response; 179 } 180 } 181 182 if (empty($label)) { 183 return false; 184 } 185 186 return $label; 148 $meta = new DHLPWC_Model_Service_Order_Meta(); 149 $meta->save_label($order_id, $label_data); 150 } 151 152 return $created_label_ids; 187 153 } 188 154 … … 322 288 continue; 323 289 } else { 324 $ label_size = null;290 $piece = []; 325 291 switch($selected_size) { 326 292 case 'bp_only': … … 344 310 $lowest_weight = $size->max_weight_kg; 345 311 $smallest_dimensions = $size_dimensions; 346 $label_size = $size->key; 312 $piece['parcel_type'] = $size->key; 313 $piece['quantity'] = 1; 347 314 } 348 315 } … … 352 319 /** @var DHLPWC_Model_API_Data_Parceltype $size */ 353 320 if (strtolower($size->key) === 'envelope') { 354 $label_size = $size->key; 321 $piece['parcel_type'] = $size->key; 322 $piece['quantity'] = 1; 355 323 break; 356 324 } … … 363 331 /** @var DHLPWC_Model_API_Data_Parceltype $size */ 364 332 if (strtolower($size->key) === 'xsmall') { 365 $label_size = $size->key; 333 $piece['parcel_type'] = $size->key; 334 $piece['quantity'] = 1; 366 335 break; 367 336 } … … 372 341 /** @var DHLPWC_Model_API_Data_Parceltype $size */ 373 342 if (strtolower($size->key) === 'small') { 374 $label_size = $size->key; 343 $piece['parcel_type'] = $size->key; 344 $piece['quantity'] = 1; 375 345 break; 376 346 } … … 381 351 /** @var DHLPWC_Model_API_Data_Parceltype $size */ 382 352 if (strtolower($size->key) === 'medium') { 383 $label_size = $size->key; 353 $piece['parcel_type'] = $size->key; 354 $piece['quantity'] = 1; 384 355 break; 385 356 } … … 390 361 /** @var DHLPWC_Model_API_Data_Parceltype $size */ 391 362 if (strtolower($size->key) === 'xlarge') { 392 $label_size = $size->key; 363 $piece['parcel_type'] = $size->key; 364 $piece['quantity'] = 1; 393 365 break; 394 366 } … … 399 371 /** @var DHLPWC_Model_API_Data_Parceltype $size */ 400 372 if (strtolower($size->key) === 'bulky') { 401 $label_size = $size->key; 373 $piece['parcel_type'] = $size->key; 374 $piece['quantity'] = 1; 402 375 break; 403 376 } … … 418 391 $highest_weight = $size->max_weight_kg; 419 392 $biggest_dimensions = $size_dimensions; 420 $label_size = $size->key; 421 } 422 } 423 break; 424 } 425 } 426 427 if (!$label_size) { 393 $piece['parcel_type'] = $size->key; 394 $piece['quantity'] = 1; 395 } 396 } 397 break; 398 } 399 } 400 401 if (empty($piece)) { 428 402 // Couldn't find an appropriate label size 429 403 $bulk_fail++; … … 432 406 433 407 $service = DHLPWC_Model_Service_Shipment::instance(); 434 $success = $service->create($order_id, $label_size, $preselected_options, $option_data, $to_business);408 $success = $service->create($order_id, [$piece], $preselected_options, $option_data, $to_business); 435 409 436 410 if ($success) { -
dhlpwc/tags/2.0.16/includes/model/service/class-dhlpwc-model-service-shipping-preset.php
r2836525 r2974250 158 158 'frontend_id' => 'home-morning', 159 159 'setting_id' => 'morning', 160 'title' => __('Door delivery before 1 1:00AM', 'dhlpwc'),160 'title' => __('Door delivery before 12:00PM', 'dhlpwc'), 161 161 'options' => array( 162 162 DHLPWC_Model_Meta_Order_Option_Preference::OPTION_DOOR, -
dhlpwc/tags/2.0.16/includes/view/order/meta.php
r2688414 r2974250 14 14 <?php endif ?> 15 15 16 16 17 <input type="hidden" name="my_ajax_nonce" value="<?php echo wp_create_nonce('my_ajax_action') ?>" /> 17 <button id="dhlpwc-label-create" type="submit"><?php echo esc_html(__('Create', 'dhlpwc')) ?></button> 18 <div class="widefat"> 19 <button class="button button-primary" id="dhlpwc-label-create" type="submit"><?php echo esc_html(__('Create', 'dhlpwc')) ?></button> 20 <button class="button" id="dhlpwc-label-add-piece" type="button"><?php echo esc_html(__('Add another package', 'dhlpwc')) ?></button> 21 </div> -
dhlpwc/tags/2.0.16/includes/view/order/meta/form/sizes-container.php
r2688414 r2974250 1 1 <?php if (!defined('ABSPATH')) { exit; } ?> 2 <div class="dhlpwc-order-metabox-form-parceltypes"> 3 <div class="dhlpwc-form-content"> 4 <?php echo dhlpwc_esc_template($content) ?> 2 <br/> 3 <?php echo dhlpwc_esc_template($header) ?> 4 5 <div class="dhlpwc-chosen-sizes"> 6 <div class="dhlpwc-chosen-size-template"> 7 <div class="dhlpwc-label-size-header"> 8 <?php echo esc_html(__('Package', 'dhlpwc')) ?> #<span class="dhlpwc-parcel-counter"></span> 9 </div> 10 <div class="dhlpwc-chosen-size-selection"> 11 <div class="dhlpwc-chosen-size-actions"> 12 <a href='#' class='button tips dhlpwc-label-action dhlpwc-label-edit-piece'><?php echo __('Edit') ?></a> 13 <a href='#' class='button tips dhlpwc-label-action dhlpwc-label-delete-piece'><?php echo __('Delete') ?></a> 14 </div> 15 <div class="dhlpwc-chosen-size-info"> 16 <span class="dhlpwc-chosen-size">SIZE</span> 17 ( <i></i> ) 18 </div> 19 </div> 20 <div class="dhlpwc-form-size-selections-edit"></div> 5 21 </div> 6 22 </div> 23 24 <div class="dhlpwc-order-metabox-form-parceltypes"> 25 <div class="dhlpwc-label-size-header"> 26 <?php echo esc_html(__('Package', 'dhlpwc')) ?> #<span class="dhlpwc-parcel-counter"></span> 27 </div> 28 <div class="dhlpwc-form-content dhlpwc-form-sizes"> 29 <div class="dhlpwc-form-size-selections"> 30 <?php echo dhlpwc_esc_template($content) ?> 31 </div> 32 </div> 33 </div> -
dhlpwc/tags/2.0.16/includes/view/order/meta/form/sizes-headline.php
r2688414 r2974250 1 1 <?php if (!defined('ABSPATH')) { exit; } ?> 2 <small><strong><?php _e('Selected:', 'dhlpwc') ?></strong> <?php echo esc_attr($message) ?></small><br/> 2 <?php if (!empty($message)) : ?> 3 <small><strong><?php _e('Selected:', 'dhlpwc') ?></strong> <?php echo esc_attr($message) ?></small><br/> 4 <?php endif ?> 5 -
dhlpwc/tags/2.0.16/languages/dhlpwc-de_CH.po
r2697107 r2974250 593 593 594 594 #: includes/model/service/class-dhlpwc-model-service-shipping-preset.php:131 595 msgid "Door delivery before 1 1:00AM"596 msgstr "Türlieferung vor 1 1:00 Uhr"595 msgid "Door delivery before 12:00PM" 596 msgstr "Türlieferung vor 12:00 Uhr" 597 597 598 598 #: includes/model/service/class-dhlpwc-model-service-translation.php:22 -
dhlpwc/tags/2.0.16/languages/dhlpwc-nl_BE.po
r2777069 r2974250 587 587 588 588 #: includes/model/service/class-dhlpwc-model-service-shipping-preset.php:131 589 msgid "Door delivery before 1 1:00AM"590 msgstr "Bezorging voor 1 1:00 uur"589 msgid "Door delivery before 12:00PM" 590 msgstr "Bezorging voor 12:00 uur" 591 591 592 592 #: includes/model/service/class-dhlpwc-model-service-translation.php:22 -
dhlpwc/tags/2.0.16/languages/dhlpwc-nl_NL.po
r2777069 r2974250 587 587 588 588 #: includes/model/service/class-dhlpwc-model-service-shipping-preset.php:131 589 msgid "Door delivery before 1 1:00AM"590 msgstr "Bezorging voor 1 1:00 uur"589 msgid "Door delivery before 12:00PM" 590 msgstr "Bezorging voor 12:00 uur" 591 591 592 592 #: includes/model/service/class-dhlpwc-model-service-translation.php:22 -
dhlpwc/tags/2.0.16/languages/dhlpwc.pot
r2777069 r2974250 572 572 573 573 #: includes/model/service/class-dhlpwc-model-service-shipping-preset.php:131 574 msgid "Door delivery before 1 1:00AM"574 msgid "Door delivery before 12:00PM" 575 575 msgstr "" 576 576 -
dhlpwc/tags/2.0.16/readme.txt
r2966997 r2974250 5 5 Requires PHP: 5.6 6 6 Tested up to: 6.2 7 Stable tag: 2.0.1 57 Stable tag: 2.0.16 8 8 WC requires at least: 3.0.0 9 9 WC tested up to: 7.3.0 … … 53 53 54 54 == Changelog == 55 56 = 2.0.16 = 57 - Added the possibility to add multiple shipments through the label panel 58 - Update Expresser service time to reflect the correct new time 55 59 56 60 = 2.0.15 = -
dhlpwc/trunk/README.md
r2966997 r2974250 1 1 # DHL Parcel for WooCommerce 2 3 v2.0.16 4 ## Changes 5 - Added the possibility to add multiple shipments through the label panel 6 - Update Expresser service time to reflect the correct new time 2 7 3 8 v2.0.15 -
dhlpwc/trunk/assets/css/dhlpwc.admin.css
r2688414 r2974250 715 715 display:block; 716 716 } 717 718 /* Sizes */ 719 .dhlpwc-chosen-sizes { 720 counter-reset: dhlpwc-parcel-counter 0; 721 } 722 .dhlpwc-parcel-counter:before { 723 counter-increment: dhlpwc-parcel-counter 1; 724 content: counter(dhlpwc-parcel-counter); 725 } 726 727 .dhlpwc-chosen-size-template { 728 display: none; 729 } 730 731 .dhlpwc-order-metabox-form-parceltypes .dhlpwc-label-size-header { 732 display: none; 733 } 734 735 .dhlpwc-label-size-header { 736 margin-top: 10px; 737 font-weight: bold; 738 font-size: small; 739 } 740 741 .dhlpwc-chosen-size-container:nth-child(2) .dhlpwc-label-size-header { 742 margin-top: 0; 743 } 744 745 .dhlpwc-chosen-size-actions { 746 float: left; 747 margin: 5px 5px 0 0; 748 } 749 750 .dhlpwc-form-sizes, 751 .dhlpwc-chosen-size-info, 752 .dhlpwc-form-size-selections-edit { 753 overflow-x:hidden; 754 white-space: nowrap; 755 text-overflow: ellipsis; 756 } 757 758 .dhlpwc-chosen-size-info .dhlpwc-chosen-size { 759 display: block; 760 font-weight: 600; 761 } 762 763 .dhlpwc-chosen-sizes .dhlpwc-label-action { 764 display: inline-block; 765 text-indent: -9999px; 766 position: relative; 767 padding: 0 !important; 768 height: 2em; 769 width: 2em; 770 } 771 772 .dhlpwc-chosen-sizes .dhlpwc-label-action::after { 773 font-family: Dashicons; 774 speak: none; 775 font-weight: 400; 776 font-variant: normal; 777 text-transform: none; 778 -webkit-font-smoothing: antialiased; 779 margin: 0; 780 text-indent: 0; 781 position: absolute; 782 top: 0; 783 right: 0; 784 width: 100%; 785 height: 100%; 786 text-align: center; 787 content: "\f133"; 788 line-height: 1.85; 789 } 790 791 .dhlpwc-chosen-sizes .dhlpwc-label-action.dhlpwc-label-edit-piece::after { content: "\f203";} 792 .dhlpwc-chosen-sizes .dhlpwc-label-action.dhlpwc-label-delete-piece::after { content: "\f182";} -
dhlpwc/trunk/assets/js/dhlpwc.metabox.js
r2966997 r2974250 5 5 6 6 jQuery(document).ready(function($) { 7 $(document.body).on('click', '#dhlpwc-label- create', function(e) {8 e.preventDefault();9 10 var label_size = $('.dhlpwc-label-create-size:checked').val(); 7 $(document.body).on('click', '#dhlpwc-label-add-piece', function(e) { 8 var label_size = $('input[name=dhlpwc-label-create-size]:checked').val(); 9 var label_size_info = $('input[name=dhlpwc-label-create-size]:checked').nextAll('i').first().html(); 10 11 11 if (typeof label_size === "undefined" ) { 12 12 // TODO update alert to a more user friendly user feedback … … 14 14 return; 15 15 } 16 17 var new_label_piece = $('.dhlpwc-chosen-size-template').first().clone(); 18 new_label_piece.removeClass('dhlpwc-chosen-size-template'); 19 new_label_piece.addClass('dhlpwc-chosen-size-container'); 20 new_label_piece.find('.dhlpwc-chosen-size').html(label_size); 21 new_label_piece.find('.dhlpwc-chosen-size + i').html(label_size_info); 22 23 new_label_piece.data({ 24 parcel_type: label_size, 25 quantity: 1 26 }); 27 new_label_piece.appendTo('.dhlpwc-chosen-sizes'); 28 29 $(document.body).trigger('dhlpwc:update_package_counter'); 30 31 }).on('click', '.dhlpwc-label-edit-piece', function(e) { 32 e.preventDefault(); 33 34 var container = $(this).closest('.dhlpwc-chosen-size-container'); 35 var chosen_size = container.data('parcel_type'); 36 var form_sizes = $('.dhlpwc-form-content.dhlpwc-form-sizes').clone(); 37 38 // Randomize name 39 form_sizes.find('input[type=radio]') 40 .attr('name', 'dhlpwc-label-edit-size-' + Math.floor(Math.random() * 26) + Date.now()) 41 .removeClass('dhlpwc-label-create-size') 42 .addClass('dhlpwc-label-edit-size') 43 .each(function() { 44 $(this).attr('checked', $(this).val() === chosen_size) 45 }); 46 47 container.find('.dhlpwc-chosen-size-selection').hide(); 48 container.find('.dhlpwc-form-size-selections-edit').show(); 49 container.find('.dhlpwc-form-size-selections-edit').html(form_sizes.html()); 50 51 }).on('click', '.dhlpwc-form-size-selections-edit .dhlpwc-label-edit-size', function(e) { 52 e.preventDefault(); 53 54 var container = $(this).closest('.dhlpwc-chosen-size-container'); 55 56 var label_size = $(this).val(); 57 var label_size_info = container.find('input.dhlpwc-label-edit-size[value="' + label_size + '"]').nextAll('i').first().html(); 58 59 container.find('.dhlpwc-chosen-size').html(label_size); 60 container.find('.dhlpwc-chosen-size + i').html(label_size_info); 61 container.data({ 62 parcel_type: label_size, 63 quantity: 1 64 }); 65 66 container.find('.dhlpwc-chosen-size-selection').show(); 67 container.find('.dhlpwc-form-size-selections-edit').hide(); 68 69 }).on('click', '.dhlpwc-label-delete-piece', function(e) { 70 e.preventDefault(); 71 72 var container = $(this).closest('.dhlpwc-chosen-size-container'); 73 container.remove(); 74 75 $(document.body).trigger('dhlpwc:update_package_counter'); 76 77 }).on('click', '#dhlpwc-label-create', function(e) { 78 e.preventDefault(); 16 79 17 80 var label_options = []; … … 32 95 security: $( '#dhlpwc-ajax-nonce' ).val(), 33 96 post_id: dhlpwc_metabox_object.post_id, 34 label_size: label_size,97 pieces: [], 35 98 label_options: label_options, 36 99 label_option_data: label_option_data, … … 39 102 }); 40 103 104 $('.dhlpwc-chosen-size-container').each(function (key, label_piece) { 105 data.pieces.push($(label_piece).data()); 106 }); 107 108 var label_size = $('input[name=dhlpwc-label-create-size]:checked').val(); 109 if (typeof label_size === "undefined" ) { 110 // TODO update alert to a more user friendly user feedback 111 alert('Select a label'); 112 return; 113 } 114 115 data.pieces.push({ 116 parcel_type: label_size, 117 quantity: 1 118 }) 119 41 120 // Click-2-much prevention 42 121 if ($('#dhlpwc-label').attr('metabox_busy') == 'true') { … … 47 126 } 48 127 49 $.post(ajaxurl, data, function (response) {128 $.post(ajaxurl, data, function (response) { 50 129 try { 51 view = response.data.view;130 view = response.data.view; 52 131 } catch(error) { 53 132 alert('Error'); … … 315 394 } 316 395 317 $('div.dhlpwc-order-metabox-form-parceltypes > .dhlpwc-form-content').html(view);396 $('div.dhlpwc-order-metabox-form-parceltypes .dhlpwc-form-sizes').html(view); 318 397 // Reselect the previous radio before the refresh, if possible 319 398 if (typeof label_size !== "undefined" ) { … … 323 402 $(document.body).trigger('dhlpwc:select_default_size'); 324 403 }, 'json'); 404 405 }).on('dhlpwc:update_package_counter', function() { 406 var headers = $('.dhlpwc-label-size-header').not($('.dhlpwc-chosen-size-template .dhlpwc-label-size-header')); 407 if (headers.length > 1) { 408 headers.show(); 409 } else { 410 headers.hide(); 411 } 325 412 326 413 }).on('dhlpwc:select_default_size', function() { -
dhlpwc/trunk/dhlpwoocommerce.php
r2966997 r2974250 5 5 * Description: This is the official DHL Parcel for WooCommerce plugin. 6 6 * Author: DHL Parcel 7 * Version: 2.0.1 57 * Version: 2.0.16 8 8 * Requires at least: 4.7.16 9 9 * Tested up to: 6.3 -
dhlpwc/trunk/includes/controller/admin/class-dhlpwc-controller-admin-order-metabox.php
r2966997 r2974250 118 118 { 119 119 $post_id = wc_clean($_POST['post_id']); 120 $label_size = wc_clean($_POST['label_size']);121 120 $label_options = isset($_POST['label_options']) && is_array($_POST['label_options']) ? wc_clean($_POST['label_options']) : array(); 122 121 $label_option_data = isset($_POST['label_option_data']) && is_array($_POST['label_option_data']) ? array_map(function ($var) { … … 124 123 }, $_POST['label_option_data']) : array(); 125 124 $to_business = (isset($_POST['to_business']) && wc_clean($_POST['to_business']) == 'yes') ? true : false; 125 $pieces = wc_clean($_POST['pieces']); 126 foreach ($pieces as &$piece) { 127 $piece['label_size'] = isset($piece['parcel_type']) ? $piece['parcel_type'] : 'SMALL'; 128 $piece['quantity'] = isset($piece['quantity']) ? (int)$piece['quantity'] : 1; 129 } 126 130 127 131 $service = DHLPWC_Model_Service_Shipment::instance(); 128 $success = $service->create($post_id, $ label_size, $label_options, $label_option_data, $to_business);132 $success = $service->create($post_id, $pieces, $label_options, $label_option_data, $to_business); 129 133 130 134 // Set Flash message … … 390 394 $view = new DHLPWC_Template('order.meta.form.sizes-container'); 391 395 $sizes_form = $view->render(array( 396 'header' => $metabox_service->sizes_header($preselected_options), 392 397 'content' => $metabox_service->sizes_form($order_id, $preselected_options, $to_business), 393 398 ), false); -
dhlpwc/trunk/includes/model/logic/class-dhlpwc-model-logic-shipment.php
r2966997 r2974250 27 27 $request_options = $service->get_request_options($keys, $option_data); 28 28 29 // TODO temporary logic to create a piece 30 $pieces = array(); 31 $piece = new DHLPWC_Model_API_Data_Shipment_Piece(); 32 $piece->parcel_type = isset($options['label_size']) ? $options['label_size'] : 'SMALL'; 33 $piece->quantity = 1; 34 $pieces[] = $piece; 29 $pieces = array_map(function ($piece) { 30 return new DHLPWC_Model_API_Data_Shipment_Piece($piece); 31 }, $options['pieces']); 35 32 36 33 $shipment = new DHLPWC_Model_API_Data_Shipment_Request(array( -
dhlpwc/trunk/includes/model/service/class-dhlpwc-model-service-escape-output.php
r2966997 r2974250 74 74 'rows' => array(), 75 75 'cols' => array(), 76 ), 77 'span' => array( 78 'class' => array(), 76 79 ), 77 80 ); -
dhlpwc/trunk/includes/model/service/class-dhlpwc-model-service-label-metabox.php
r2966997 r2974250 270 270 } 271 271 272 public function sizes_ form($order_id, $selected_options, $to_business)272 public function sizes_header($selected_options) 273 273 { 274 274 $view = new DHLPWC_Template('order.meta.form.sizes-headline'); … … 281 281 ); 282 282 283 $size_view =$view->render(array(283 return $view->render(array( 284 284 'message' => implode(' + ', $option_texts), 285 285 ), false); 286 286 } 287 288 public function sizes_form($order_id, $selected_options, $to_business) 289 { 290 $size_view = ''; 287 291 $service = DHLPWC_Model_Service_Access_Control::instance(); 288 292 $sizes = $service->check(DHLPWC_Model_Service_Access_Control::ACCESS_CAPABILITY_PARCELTYPE, array( -
dhlpwc/trunk/includes/model/service/class-dhlpwc-model-service-shipment.php
r2966997 r2974250 15 15 16 16 /** 17 * TODO update for multiple pieces in the future18 17 * Create a shipment with label data attached to order_id. Optionally, request specific sizes 19 18 * … … 22 21 * @return boolean 23 22 */ 24 public function create($order_id, $ label_size = null, $shipment_options = array(), $shipment_option_data = array(), $to_business = false)23 public function create($order_id, $pieces, $shipment_options = array(), $shipment_option_data = array(), $to_business = false) 25 24 { 26 25 $this->clear_error(self::CREATE_ERROR); … … 41 40 /** @var DHLPWC_Model_API_Data_Shipment_Request $shipment_data */ 42 41 $shipment_data = $logic->prepare_data($order_id, array( 43 ' label_size' => $label_size,44 'label_options' => $shipment_options, // TODO Temp45 'label_option_data' => $shipment_option_data, // TODO Temp42 'pieces' => $pieces, 43 'label_options' => $shipment_options, 44 'label_option_data' => $shipment_option_data, 46 45 'to_business' => $to_business, 47 46 ), $hide_sender_data); … … 91 90 92 91 $response = $logic->send_request($shipment_data); 93 if (!$response ) {92 if (!$response || empty($response['pieces'])) { 94 93 return false; 95 94 } 96 $label = $this->get_first_piece($response); 97 if (!$label) { 98 return false; 99 } 100 101 $label_data = array( 102 'label_id' => $label['labelId'], 103 'label_type' => $label['labelType'], 104 'label_size' => $label_size, 105 'tracker_code' => $label['trackerCode'], 106 'routing_code' => null, 107 'order_reference' => $label['orderReference'], 108 ); 109 110 // Save label request or not 111 $service = DHLPWC_Model_Service_Access_Control::instance(); 112 $debug_label_requests = $service->check(DHLPWC_Model_Service_Access_Control::ACCESS_LABEL_REQUEST); 113 if ($debug_label_requests) { 114 $label_data['request'] = json_encode($shipment_data); 115 } 116 117 // Create label do action hook 118 do_action('dhlpwc_create_label', $order_id, $label_data); 119 120 $meta = new DHLPWC_Model_Service_Order_Meta(); 121 $meta->save_label($order_id, $label_data); 95 96 97 $created_label_ids = $this->save_labels($response, $shipment_data, $order_id); 122 98 123 99 /** Create return label if requested */ … … 126 102 127 103 $return_response = $logic->send_request($return_shipment_data); 128 if (!$return_response ) {104 if (!$return_response || empty($response['pieces'])) { 129 105 // This failed. Remove original successfully created label as well and return. 130 $this->delete($order_id, $label['labelId']); 106 foreach ($created_label_ids as $label_id) { 107 $this->delete($order_id, $label_id); 108 } 109 131 110 return false; 132 111 } 133 $return_label = $this->get_first_piece($return_response); 134 if (!$return_label) { 135 // This failed. Remove original successfully created label as well and return. 136 $this->delete($order_id, $label['labelId']); 137 return false; 138 } 139 112 113 $this->save_labels($return_response, $return_shipment_data, $order_id, true); 114 } 115 116 $this->update_order_status($order_id); 117 118 return true; 119 } 120 121 protected function save_labels($response, $shipment_data, $order_id, $is_return = false) 122 { 123 $labels = $response['pieces']; 124 // We keep track of the label ids, used to remove these labels if creating a return label fails. 125 $created_label_ids = []; 126 foreach ($labels as $label) { 127 $created_label_ids[] = $label['labelId']; 140 128 $label_data = array( 141 'label_id' => $ return_label['labelId'],142 'label_type' => $ return_label['labelType'],143 'label_size' => $label _size,144 'tracker_code' => $ return_label['trackerCode'],129 'label_id' => $label['labelId'], 130 'label_type' => $label['labelType'], 131 'label_size' => $label['parcelType'], 132 'tracker_code' => $label['trackerCode'], 145 133 'routing_code' => null, 146 'order_reference' => $re turn_label['orderReference'],147 'is_return' => true,134 'order_reference' => $response['orderReference'], 135 'is_return' => $is_return 148 136 ); 149 137 … … 152 140 $debug_label_requests = $service->check(DHLPWC_Model_Service_Access_Control::ACCESS_LABEL_REQUEST); 153 141 if ($debug_label_requests) { 154 $label_data['request'] = json_encode($ return_shipment_data);142 $label_data['request'] = json_encode($shipment_data); 155 143 } 156 144 … … 158 146 do_action('dhlpwc_create_label', $order_id, $label_data); 159 147 160 $return_meta = new DHLPWC_Model_Service_Order_Meta(); 161 $return_meta->save_label($order_id, $label_data); 162 } 163 164 $this->update_order_status($order_id); 165 166 return true; 167 } 168 169 protected function get_first_piece($response) 170 { 171 // TODO currently the code handles single pieces, but can be expanded for multiple pieces in the future 172 if (empty($response['pieces'])) { 173 return false; 174 } 175 176 foreach($response['pieces'] as $label_response) { 177 if (!empty($label_response['labelId'])) { 178 $label = $label_response; 179 } 180 } 181 182 if (empty($label)) { 183 return false; 184 } 185 186 return $label; 148 $meta = new DHLPWC_Model_Service_Order_Meta(); 149 $meta->save_label($order_id, $label_data); 150 } 151 152 return $created_label_ids; 187 153 } 188 154 … … 322 288 continue; 323 289 } else { 324 $ label_size = null;290 $piece = []; 325 291 switch($selected_size) { 326 292 case 'bp_only': … … 344 310 $lowest_weight = $size->max_weight_kg; 345 311 $smallest_dimensions = $size_dimensions; 346 $label_size = $size->key; 312 $piece['parcel_type'] = $size->key; 313 $piece['quantity'] = 1; 347 314 } 348 315 } … … 352 319 /** @var DHLPWC_Model_API_Data_Parceltype $size */ 353 320 if (strtolower($size->key) === 'envelope') { 354 $label_size = $size->key; 321 $piece['parcel_type'] = $size->key; 322 $piece['quantity'] = 1; 355 323 break; 356 324 } … … 363 331 /** @var DHLPWC_Model_API_Data_Parceltype $size */ 364 332 if (strtolower($size->key) === 'xsmall') { 365 $label_size = $size->key; 333 $piece['parcel_type'] = $size->key; 334 $piece['quantity'] = 1; 366 335 break; 367 336 } … … 372 341 /** @var DHLPWC_Model_API_Data_Parceltype $size */ 373 342 if (strtolower($size->key) === 'small') { 374 $label_size = $size->key; 343 $piece['parcel_type'] = $size->key; 344 $piece['quantity'] = 1; 375 345 break; 376 346 } … … 381 351 /** @var DHLPWC_Model_API_Data_Parceltype $size */ 382 352 if (strtolower($size->key) === 'medium') { 383 $label_size = $size->key; 353 $piece['parcel_type'] = $size->key; 354 $piece['quantity'] = 1; 384 355 break; 385 356 } … … 390 361 /** @var DHLPWC_Model_API_Data_Parceltype $size */ 391 362 if (strtolower($size->key) === 'xlarge') { 392 $label_size = $size->key; 363 $piece['parcel_type'] = $size->key; 364 $piece['quantity'] = 1; 393 365 break; 394 366 } … … 399 371 /** @var DHLPWC_Model_API_Data_Parceltype $size */ 400 372 if (strtolower($size->key) === 'bulky') { 401 $label_size = $size->key; 373 $piece['parcel_type'] = $size->key; 374 $piece['quantity'] = 1; 402 375 break; 403 376 } … … 418 391 $highest_weight = $size->max_weight_kg; 419 392 $biggest_dimensions = $size_dimensions; 420 $label_size = $size->key; 421 } 422 } 423 break; 424 } 425 } 426 427 if (!$label_size) { 393 $piece['parcel_type'] = $size->key; 394 $piece['quantity'] = 1; 395 } 396 } 397 break; 398 } 399 } 400 401 if (empty($piece)) { 428 402 // Couldn't find an appropriate label size 429 403 $bulk_fail++; … … 432 406 433 407 $service = DHLPWC_Model_Service_Shipment::instance(); 434 $success = $service->create($order_id, $label_size, $preselected_options, $option_data, $to_business);408 $success = $service->create($order_id, [$piece], $preselected_options, $option_data, $to_business); 435 409 436 410 if ($success) { -
dhlpwc/trunk/includes/model/service/class-dhlpwc-model-service-shipping-preset.php
r2836525 r2974250 158 158 'frontend_id' => 'home-morning', 159 159 'setting_id' => 'morning', 160 'title' => __('Door delivery before 1 1:00AM', 'dhlpwc'),160 'title' => __('Door delivery before 12:00PM', 'dhlpwc'), 161 161 'options' => array( 162 162 DHLPWC_Model_Meta_Order_Option_Preference::OPTION_DOOR, -
dhlpwc/trunk/includes/view/order/meta.php
r2688414 r2974250 14 14 <?php endif ?> 15 15 16 16 17 <input type="hidden" name="my_ajax_nonce" value="<?php echo wp_create_nonce('my_ajax_action') ?>" /> 17 <button id="dhlpwc-label-create" type="submit"><?php echo esc_html(__('Create', 'dhlpwc')) ?></button> 18 <div class="widefat"> 19 <button class="button button-primary" id="dhlpwc-label-create" type="submit"><?php echo esc_html(__('Create', 'dhlpwc')) ?></button> 20 <button class="button" id="dhlpwc-label-add-piece" type="button"><?php echo esc_html(__('Add another package', 'dhlpwc')) ?></button> 21 </div> -
dhlpwc/trunk/includes/view/order/meta/form/sizes-container.php
r2688414 r2974250 1 1 <?php if (!defined('ABSPATH')) { exit; } ?> 2 <div class="dhlpwc-order-metabox-form-parceltypes"> 3 <div class="dhlpwc-form-content"> 4 <?php echo dhlpwc_esc_template($content) ?> 2 <br/> 3 <?php echo dhlpwc_esc_template($header) ?> 4 5 <div class="dhlpwc-chosen-sizes"> 6 <div class="dhlpwc-chosen-size-template"> 7 <div class="dhlpwc-label-size-header"> 8 <?php echo esc_html(__('Package', 'dhlpwc')) ?> #<span class="dhlpwc-parcel-counter"></span> 9 </div> 10 <div class="dhlpwc-chosen-size-selection"> 11 <div class="dhlpwc-chosen-size-actions"> 12 <a href='#' class='button tips dhlpwc-label-action dhlpwc-label-edit-piece'><?php echo __('Edit') ?></a> 13 <a href='#' class='button tips dhlpwc-label-action dhlpwc-label-delete-piece'><?php echo __('Delete') ?></a> 14 </div> 15 <div class="dhlpwc-chosen-size-info"> 16 <span class="dhlpwc-chosen-size">SIZE</span> 17 ( <i></i> ) 18 </div> 19 </div> 20 <div class="dhlpwc-form-size-selections-edit"></div> 5 21 </div> 6 22 </div> 23 24 <div class="dhlpwc-order-metabox-form-parceltypes"> 25 <div class="dhlpwc-label-size-header"> 26 <?php echo esc_html(__('Package', 'dhlpwc')) ?> #<span class="dhlpwc-parcel-counter"></span> 27 </div> 28 <div class="dhlpwc-form-content dhlpwc-form-sizes"> 29 <div class="dhlpwc-form-size-selections"> 30 <?php echo dhlpwc_esc_template($content) ?> 31 </div> 32 </div> 33 </div> -
dhlpwc/trunk/includes/view/order/meta/form/sizes-headline.php
r2688414 r2974250 1 1 <?php if (!defined('ABSPATH')) { exit; } ?> 2 <small><strong><?php _e('Selected:', 'dhlpwc') ?></strong> <?php echo esc_attr($message) ?></small><br/> 2 <?php if (!empty($message)) : ?> 3 <small><strong><?php _e('Selected:', 'dhlpwc') ?></strong> <?php echo esc_attr($message) ?></small><br/> 4 <?php endif ?> 5 -
dhlpwc/trunk/languages/dhlpwc-de_CH.po
r2697107 r2974250 593 593 594 594 #: includes/model/service/class-dhlpwc-model-service-shipping-preset.php:131 595 msgid "Door delivery before 1 1:00AM"596 msgstr "Türlieferung vor 1 1:00 Uhr"595 msgid "Door delivery before 12:00PM" 596 msgstr "Türlieferung vor 12:00 Uhr" 597 597 598 598 #: includes/model/service/class-dhlpwc-model-service-translation.php:22 -
dhlpwc/trunk/languages/dhlpwc-nl_BE.po
r2777069 r2974250 587 587 588 588 #: includes/model/service/class-dhlpwc-model-service-shipping-preset.php:131 589 msgid "Door delivery before 1 1:00AM"590 msgstr "Bezorging voor 1 1:00 uur"589 msgid "Door delivery before 12:00PM" 590 msgstr "Bezorging voor 12:00 uur" 591 591 592 592 #: includes/model/service/class-dhlpwc-model-service-translation.php:22 -
dhlpwc/trunk/languages/dhlpwc-nl_NL.po
r2777069 r2974250 587 587 588 588 #: includes/model/service/class-dhlpwc-model-service-shipping-preset.php:131 589 msgid "Door delivery before 1 1:00AM"590 msgstr "Bezorging voor 1 1:00 uur"589 msgid "Door delivery before 12:00PM" 590 msgstr "Bezorging voor 12:00 uur" 591 591 592 592 #: includes/model/service/class-dhlpwc-model-service-translation.php:22 -
dhlpwc/trunk/languages/dhlpwc.pot
r2777069 r2974250 572 572 573 573 #: includes/model/service/class-dhlpwc-model-service-shipping-preset.php:131 574 msgid "Door delivery before 1 1:00AM"574 msgid "Door delivery before 12:00PM" 575 575 msgstr "" 576 576 -
dhlpwc/trunk/readme.txt
r2966997 r2974250 5 5 Requires PHP: 5.6 6 6 Tested up to: 6.2 7 Stable tag: 2.0.1 57 Stable tag: 2.0.16 8 8 WC requires at least: 3.0.0 9 9 WC tested up to: 7.3.0 … … 53 53 54 54 == Changelog == 55 56 = 2.0.16 = 57 - Added the possibility to add multiple shipments through the label panel 58 - Update Expresser service time to reflect the correct new time 55 59 56 60 = 2.0.15 =
Note: See TracChangeset
for help on using the changeset viewer.