Changeset 3220107
- Timestamp:
- 01/10/2025 10:25:45 AM (15 months ago)
- Location:
- blpaczka
- Files:
-
- 12 edited
- 9 copied
-
tags/1.1.0 (copied) (copied from blpaczka/trunk)
-
tags/1.1.0/README.md (copied) (copied from blpaczka/trunk/README.md) (3 diffs)
-
tags/1.1.0/assets/blpaczka-admin-parcel-send.js (modified) (3 diffs)
-
tags/1.1.0/assets/shipment-form.js (copied) (copied from blpaczka/trunk/assets/shipment-form.js) (4 diffs)
-
tags/1.1.0/blpaczka.php (copied) (copied from blpaczka/trunk/blpaczka.php) (7 diffs)
-
tags/1.1.0/readme.txt (copied) (copied from blpaczka/trunk/readme.txt) (2 diffs)
-
tags/1.1.0/src/BLPaczkaRestRoutes.php (copied) (copied from blpaczka/trunk/src/BLPaczkaRestRoutes.php) (3 diffs)
-
tags/1.1.0/src/BLPaczkaWooBlocks.php (copied) (copied from blpaczka/trunk/src/BLPaczkaWooBlocks.php) (1 diff)
-
tags/1.1.0/src/settings.php (copied) (copied from blpaczka/trunk/src/settings.php) (5 diffs)
-
tags/1.1.0/templates/list-shipment-form.php (modified) (5 diffs)
-
tags/1.1.0/templates/shipment-form.php (copied) (copied from blpaczka/trunk/templates/shipment-form.php) (9 diffs)
-
trunk/README.md (modified) (3 diffs)
-
trunk/assets/blpaczka-admin-parcel-send.js (modified) (3 diffs)
-
trunk/assets/shipment-form.js (modified) (4 diffs)
-
trunk/blpaczka.php (modified) (7 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/src/BLPaczkaRestRoutes.php (modified) (3 diffs)
-
trunk/src/BLPaczkaWooBlocks.php (modified) (1 diff)
-
trunk/src/settings.php (modified) (5 diffs)
-
trunk/templates/list-shipment-form.php (modified) (5 diffs)
-
trunk/templates/shipment-form.php (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
blpaczka/tags/1.1.0/README.md
r3203142 r3220107 5 5 Requires at least: 5.3 6 6 Tested up to: 6.6.1 7 Stable tag: 1. 0.37 Stable tag: 1.1.0 8 8 Requires PHP: 7.0 9 9 License: GPLv2 or later … … 75 75 * Kosmetyczne zmiany 76 76 77 = 1.1.0 = 78 * Szablony paczek 79 * Poprawa mapy dla Paczkomat Eco 80 * Poprawa rozdzielania adresów zamówień 81 * Drobne poprawki 82 77 83 == English == 78 84 … … 134 140 * Added support for different types of links (added wp-api) 135 141 * Cosmetic changes 142 143 = 1.1.0 = 144 * Package templates 145 * Map improvement for Paczkomat Eco 146 * Improved order address separation 147 * Minor fixes -
blpaczka/tags/1.1.0/assets/blpaczka-admin-parcel-send.js
r3173443 r3220107 25 25 }); 26 26 27 $('.blpaczka-shipment-form-list').on('click', function (event) { 28 event.stopPropagation(); 29 }); 30 $('.selectize-control').on('click', function (event) { 31 event.stopPropagation(); 32 }); 33 34 $('.blpaczka-shipment-form-list').on('click', function (event) { 35 event.stopPropagation(); 36 }); 37 38 $('.blpaczka-column').find('*').on('click', function (event) { 39 event.stopPropagation(); 40 }); 41 42 $('.column-blpaczka-column').on('click', function (event) { 43 event.stopPropagation() 44 event.preventDefault() 45 }) 46 27 47 $('#create-order').on('click', function (e) { 28 48 e.preventDefault(); … … 73 93 ) 74 94 .fail((jqXHR) => { 75 createOrderButton.replaceWith('<button class="button-primary" style="border-color: red; background-color: #ff6a6a;">Wystąpiły błędy</button><div>Przejdź do edycji zamówienia, aby nadać paczkę</div>'); 95 let errorMessage = "Wystąpił błąd."; 96 if (jqXHR.responseJSON && jqXHR.responseJSON.message) { 97 errorMessage = jqXHR.responseJSON.message; 98 } 99 100 createOrderButton.replaceWith( 101 '<div style="border-color: red; padding:10px; color:white; background-color: #ff6a6a;">Wystąpił błąd. Przejdź do edycji zamówienia, aby nadać paczkę</div>' + 102 '<div>' + errorMessage + '</div>' 103 ); 76 104 }); 77 105 }) … … 259 287 return JSON.stringify(object); 260 288 } 289 290 291 if ($('.column-blpaczka-column .template_select').length) { 292 $('.column-blpaczka-column .template_select').selectize({ 293 placeholder: 'Wybierz szablon', 294 onChange: function (value) { 295 if (!value || typeof blpaczkaTemplates === 'undefined') { 296 console.warn('Nie wybrano szablonu lub brak danych szablonów.'); 297 return; 298 } 299 300 const template = blpaczkaTemplates[value]; 301 if (template) { 302 const form = $(this.$input).parents('form'); 303 form.find('#type').val(template['Typ paczki'] || 'package').trigger('change'); 304 form.find('#weight').val(template['Waga paczki (kg)'] || ''); 305 form.find('#side_x').val(template['Długość paczki (cm)'] || ''); 306 form.find('#side_y').val(template['Szerokość paczki (cm)'] || ''); 307 form.find('#side_z').val(template['Wysokość paczki (cm)'] || ''); 308 form.find('#sortable').prop('checked', template['Paczka sortowalna (paczka o kształcie prostopadłościanu)'] || false); 309 form.find('#no_pickup').prop('checked', template['Nie zamawiaj podjazdu'] || false); 310 311 console.log('Dane formularza zaktualizowane na podstawie szablonu:', template); 312 } else { 313 console.warn('Nie znaleziono szablonu o wartości:', value); 314 } 315 } 316 }); 317 } 318 319 320 261 321 }); -
blpaczka/tags/1.1.0/assets/shipment-form.js
r3203142 r3220107 5 5 const blpaczkaMapUrl = blpaczkaData['apiUrl']; 6 6 const nonce = blpaczkaData['nonce']; 7 const paczkomatyCodes = [ 8 'paczkomaty', 9 'paczkomaty_allegro_smart', 10 'paczkomaty_eco', 11 'paczkomaty_to_door', 12 'inpost_eco', 13 ]; 7 14 8 15 $.ajaxSetup({ … … 81 88 type: 'button' 82 89 }); 83 var BLPACZKA_map_address = blpaczkaMapUrl + '/pudo-map?api_type=' + response['courier'] + '&postalCode=' + postalCode; 90 91 var courierCode = getCourierCode(response['courier']); 92 93 var BLPACZKA_map_address = blpaczkaMapUrl + '/pudo-map?api_type=' + courierCode + '&postalCode=' + postalCode; 84 94 85 95 window.addEventListener('message', function (event) { … … 170 180 var postalCodeSelector = $('#ship-to-different-address-checkbox').is(':checked') ? $('#shipping_postcode') : $('#billing_postcode'); 171 181 var postalCode = postalCodeSelector.val().replace('-', ''); 172 var BLPACZKA_map_address = blpaczkaApiUrl + '/pudo-map?api_type=' + $('.blpaczka-selected-courier-code').val() + '&postalCode=' + postalCode; 182 var courierCode = getCourierCode($('.blpaczka-selected-courier-code').val()); 183 184 var BLPACZKA_map_address = blpaczkaApiUrl + '/pudo-map?api_type=' + courierCode + '&postalCode=' + postalCode; 173 185 var BLPACZKA_modal = ` 174 186 <div id="blpaczka-point-checkout-modal"> … … 211 223 return parts.slice(-2).join('.'); 212 224 } 225 226 function getCourierCode(courierCode) { 227 if (paczkomatyCodes.includes(courierCode)) { 228 courierCode = 'paczkomaty'; 229 } 230 231 return courierCode; 232 } 213 233 }); -
blpaczka/tags/1.1.0/blpaczka.php
r3203142 r3220107 3 3 * Plugin Name: BLPaczka 4 4 * Description: Tanie przesyłki prosto z Twojego sklepu 5 * Version: 1. 0.35 * Version: 1.1.0 6 6 * Author: BLPaczka 7 7 * Author URI: https://blpaczka.com … … 44 44 require_once __DIR__ . '/src/settings.php'; 45 45 require_once __DIR__ . '/src/BLPaczkaRestRoutes.php'; 46 47 if (is_admin()) 48 require_once __DIR__ . '/src/BLPaczkaTemplates.php'; 49 50 46 51 47 52 use BLPaczka\BLPaczkaWoocommerce\BLPaczkaWooBlocks; … … 284 289 } 285 290 291 function parseAddress(string $address): array { 292 $street = ''; 293 $houseNumber = ''; 294 $apartmentNumber = ''; 295 296 $address = trim(preg_replace('/\s+/', ' ', $address)); 297 298 $pattern = '/^([\p{L}\d\s.,-]+?)\s+(\d+[a-zA-Z\-]*)\s*(?:[\/\s]*(lok\.?|m\.?|)(\d*[a-zA-Z]*))?$/u'; 299 300 if (preg_match($pattern, $address, $matches)) { 301 $street = trim($matches[1] ?? ''); 302 $houseNumber = trim($matches[2] ?? ''); 303 $apartmentNumber = trim($matches[4] ?? ''); 304 } else { 305 if (function_exists('wc_get_logger')) { 306 $logger = wc_get_logger(); 307 $logger->error("Nie udało się rozpoznać adresu: $address", ['source' => 'parseAddress']); 308 } 309 } 310 311 return [ 312 'street' => $street, 313 'houseNumber' => $houseNumber, 314 'apartmentNumber' => $apartmentNumber, 315 ]; 316 } 317 286 318 function BLPACZKA_blpaczka_shipment_meta_box( $post ) { 287 319 $order = wc_get_order( BLPACZKA_get_order_id( $post ) ); … … 298 330 $orderSum = $orderTotal - $shippingTotal; 299 331 300 $patternToExplodeAddress = '/^(.*?)\s+(\d+(?:\s*m)?)(?:\s*(?:m|\/)\.?(\w+))?(?:,\s*(\w+))?\s*$/'; 301 $street = ''; 302 $houseNumber = ''; 303 $apartmentNumber = ''; 304 305 $address = $orderData['shipping']['address_1'] . ' ' . $orderData['shipping']['address_2']; 306 307 if ( preg_match( $patternToExplodeAddress, trim( $address ), $matches ) ) { 308 $street = $matches[1] ?? ''; 309 $houseNumber = $matches[2] ?? ''; 310 $apartmentNumber = $matches[3] ?? ''; 311 } 312 313 if ( BLPACZKA_is_HPOS() ) { 332 $address = $orderData['shipping']['address_1'] . ' ' . $orderData['shipping']['address_2']; 333 $result = parseAddress($address); 334 335 $street = $result['street'] ?? ''; 336 $houseNumber = $result['houseNumber'] ?? ''; 337 $apartmentNumber = $result['apartmentNumber'] ?? ''; 338 339 340 341 if ( BLPACZKA_is_HPOS() ) { 314 342 $blpaczkaOrderId = $order->get_meta( 'BLPACZKA_blpaczka_order_id' ); 315 343 } else { … … 452 480 $shipping_settings = get_option( $option_key ); 453 481 454 $patternToExplodeAddress = '/^(.*?)\s+(\d+(?:\s*m)?)(?:\s*(?:m|\/)\.?(\w+))?(?:,\s*(\w+))?\s*$/';455 $street = '';456 $houseNumber = '';457 $apartmentNumber = '';458 459 482 $orderData = BLPACZKA_get_order_data( $order ); 460 483 … … 466 489 $address = $orderData['shipping']['address_1'] . ' ' . $orderData['shipping']['address_2']; 467 490 468 if ( preg_match( $patternToExplodeAddress, trim( $address ), $matches ) ) { 469 $street = $matches[1] ?? ''; 470 $houseNumber = $matches[2] ?? '';471 $apartmentNumber = $matches[3] ?? '';472 } 491 $result = parseAddress($address); 492 493 $street = $result['street'] ?? ''; 494 $houseNumber = $result['houseNumber'] ?? ''; 495 $apartmentNumber = $result['apartmentNumber'] ?? ''; 473 496 474 497 if ( BLPACZKA_is_HPOS() ) { … … 623 646 return $flat_rate_instances; 624 647 } 648 649 function BLPACZKA_calculate_insurance($orderSum, $isCod) { 650 $autoPrepaidInsurance = get_option('blpaczka_auto_prepaid_insurance') === 'yes'; 651 $fixedPrepaidInsurance = get_option('blpaczka_fixed_prepaid_insurance', 0); 652 $autoCodInsurance = get_option('blpaczka_auto_cod_insurance') === 'yes'; 653 $fixedCodInsurance = get_option('blpaczka_fixed_cod_insurance', 0); 654 655 if (!$isCod) { 656 return $autoPrepaidInsurance ? $orderSum : $fixedPrepaidInsurance; 657 } 658 659 return $autoCodInsurance ? $orderSum : $fixedCodInsurance; 660 } 661 -
blpaczka/tags/1.1.0/readme.txt
r3203142 r3220107 4 4 Requires at least: 5.3 5 5 Tested up to: 6.6.1 6 Stable tag: 1. 0.36 Stable tag: 1.1.0 7 7 Requires PHP: 7.0 8 8 License: GPLv2 or later … … 76 76 * Kosmetyczne zmiany 77 77 78 = 1.1.0 = 79 * Szablony paczek 80 * Poprawa mapy dla Paczkomat Eco 81 * Poprawa rozdzielania adresów zamówień 82 * Drobne poprawki -
blpaczka/tags/1.1.0/src/BLPaczkaRestRoutes.php
r3203142 r3220107 2 2 /** 3 3 * @package BLPaczka 4 * @version 1. 0.34 * @version 1.1.0 5 5 */ 6 6 if ( ! defined( 'ABSPATH' ) ) { … … 61 61 unset($requestBody['pickup_close_time']); 62 62 } 63 if (!empty($requestBody['CourierSearch']['sortable'])) { 64 $requestBody['CourierSearch']['sortable'] = $requestBody['CourierSearch']['sortable'] === 'false' ? false : true; 65 } 66 if (!empty($requestBody['CourierSearch']['no_pickup'])) { 67 $requestBody['CourierSearch']['no_pickup'] = $requestBody['CourierSearch']['no_pickup'] === 'false' ? false : true; 68 } 63 69 64 70 $postId = $requestBody['post_id']; … … 109 115 $url = BLPACZKA_API_URL . '/api/getValuation.json'; 110 116 $requestBody = json_decode($request->get_body(), true); 117 118 if (!empty($requestBody['CourierSearch']['sortable'])) { 119 $requestBody['CourierSearch']['sortable'] = $requestBody['CourierSearch']['sortable'] === 'false' ? false : true; 120 } 121 if (!empty($requestBody['CourierSearch']['no_pickup'])) { 122 $requestBody['CourierSearch']['no_pickup'] = $requestBody['CourierSearch']['no_pickup'] === 'false' ? false : true; 123 } 111 124 112 125 $requestBody['CourierSearch']['postal_delivery'] = $requestBody['Cart'][0]['Order']['taker_postal']; -
blpaczka/tags/1.1.0/src/BLPaczkaWooBlocks.php
r3203142 r3220107 2 2 /** 3 3 * @package BLPaczka 4 * @version 1. 0.34 * @version 1.1.0 5 5 */ 6 6 namespace BLPaczka\BLPaczkaWoocommerce; -
blpaczka/tags/1.1.0/src/settings.php
r3203142 r3220107 1 1 <?php 2 2 3 /** 3 4 * @package BLPaczka 4 * @version 1. 0.35 * @version 1.1.0 5 6 */ 6 7 if ( ! defined( 'ABSPATH' ) ) { … … 253 254 'id' => 'custom_settings_overview', 254 255 ], 256 257 [ 258 'title' => 'Ustawienia ubezpieczeń', 259 'type' => 'title', 260 'id' => 'blpaczka_insurance_settings', 261 ], 262 [ 263 'title' => 'Ubezpieczenie przesyłki przedpłaconej', 264 'type' => 'checkbox', 265 'id' => 'blpaczka_auto_prepaid_insurance', 266 'default' => 'no', 267 'desc' => 'Zaznacz, aby automatycznie ustawić ubezpieczenie przesyłki przedpłaconej na sumę produktów zamówienia', 268 ], 269 [ 270 'title' => 'Stała wartość ubezpieczenia przesyłki przedpłaconej (zł)', 271 'type' => 'number', 272 'id' => 'blpaczka_fixed_prepaid_insurance', 273 'default' => '0', 274 'custom_attributes' => ['step' => '0.01', 'min' => '0'], 275 'desc' => 'Wprowadź stałą wartość ubezpieczenia dla przesyłki przedpłaconej, jeśli opcja automatyczna jest wyłączona', 276 ], 277 [ 278 'title' => 'Ubezpieczenie przesyłki pobraniowej', 279 'type' => 'checkbox', 280 'id' => 'blpaczka_auto_cod_insurance', 281 'default' => 'no', 282 'desc' => 'Zaznacz, aby automatycznie ustawić ubezpieczenie przesyłki pobraniowej na sumę produktów zamówienia', 283 ], 284 [ 285 'title' => 'Stała wartość ubezpieczenia przesyłki pobraniowej (zł)', 286 'type' => 'number', 287 'id' => 'blpaczka_fixed_cod_insurance', 288 'css' => 'min-width:300px;', 289 'default' => '0', 290 'custom_attributes' => ['step' => '0.01', 'min' => '0'], 291 'desc' => 'Wprowadź stałą wartość ubezpieczenia dla przesyłki pobraniowej, jeśli opcja automatyczna jest wyłączona', 292 ], 293 [ 294 'type' => 'sectionend', 295 'id' => 'blpaczka_insurance_settings', 296 ], 297 255 298 ]; 256 299 } … … 263 306 264 307 WC_Admin_Settings::output_fields( $settings ); 308 ?> 309 <script> 310 document.addEventListener('DOMContentLoaded', function () { 311 const prepaidCheckbox = document.querySelector('#blpaczka_auto_prepaid_insurance'); 312 const prepaidInput = document.querySelector('#blpaczka_fixed_prepaid_insurance'); 313 const codCheckbox = document.querySelector('#blpaczka_auto_cod_insurance'); 314 const codInput = document.querySelector('#blpaczka_fixed_cod_insurance'); 315 316 function toggleInputState(checkbox, input) { 317 if (checkbox.checked) { 318 input.disabled = true; 319 input.value = ''; 320 } else { 321 input.disabled = false; 322 } 323 } 324 325 prepaidCheckbox.addEventListener('change', function () { 326 toggleInputState(prepaidCheckbox, prepaidInput); 327 }); 328 329 codCheckbox.addEventListener('change', function () { 330 toggleInputState(codCheckbox, codInput); 331 }); 332 333 toggleInputState(prepaidCheckbox, prepaidInput); 334 toggleInputState(codCheckbox, codInput); 335 }); 336 337 338 </script> 339 <?php 265 340 } 266 341 … … 339 414 'nonce' => wp_create_nonce( 'wp_rest' ), 340 415 ] ); 416 341 417 } 342 } 343 344 add_filter( 'woocommerce_shipping_instance_form_fields_flat_rate', 'BLPACZKA_add_custom_shipping_option' ); 418 419 wp_enqueue_script('selectize-js', 'https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.6/js/standalone/selectize.min.js', array('jquery'), null, true); 420 wp_enqueue_style('selectize-css', 'https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.6/css/selectize.min.css', array(), null); 421 422 } 423 424 add_action( 'woocommerce_init', function () { 425 $shipping_methods = WC()->shipping->get_shipping_methods(); 426 foreach ( $shipping_methods as $shipping_method ) { 427 add_filter( 'woocommerce_shipping_instance_form_fields_' . $shipping_method->id, 428 'BLPACZKA_add_custom_shipping_option' ); 429 } 430 } ); 431 432 433 434 345 435 add_action( 'woocommerce_sections_blpaczka_settings', 'BLPACZKA_action_woocommerce_sections_blpaczka_settings', 10 ); 346 436 add_action( 'woocommerce_settings_blpaczka_settings', 'BLPACZKA_action_woocommerce_settings_blpaczka_settings', 10 ); … … 349 439 add_filter( 'woocommerce_settings_tabs_array', 'BLPACZKA_filter_woocommerce_settings_tabs_array', 99 ); 350 440 add_action( 'admin_enqueue_scripts', 'blpaczka_enqueue_admin_scripts' ); 351 352 353 354 355 356 357 358 359 360 361 -
blpaczka/tags/1.1.0/templates/list-shipment-form.php
r3173443 r3220107 19 19 $is_cod_payment = $orderData['payment_method'] === 'cod'; 20 20 $cod_amount = $is_cod_payment ? $orderSum : 0; 21 $insuranceValue = BLPACZKA_calculate_insurance($orderSum, $is_cod_payment); 21 22 ?> 22 23 … … 133 134 134 135 <input type="text" class="form-control" id="blpaczka_package_content" 135 name="Cart.0.Order.package_content" min="0" 136 value="<?php echo esc_attr(get_option( 'blpaczka_package_content' )); ?>"> 137 138 <input type="number" class="form-control" id="orderSum" name="CourierSearch.cover" min="0" 139 value="<?php echo esc_attr($orderSum); ?>"> 140 141 <input type="number" class="form-control" id="uptake" name="CourierSearch.uptake" min="0" 142 min="0" 143 value="<?php echo esc_attr($cod_amount); ?>"> 144 136 name="Cart.0.Order.package_content" 137 value="<?php 138 $packageContent = get_option('blpaczka_package_content'); 139 echo esc_attr(!empty($packageContent) ? $packageContent : 'Zamówienie: #'.$orderId); ?>"> 140 141 142 <input type="number" class="form-control" id="orderSum" name="CourierSearch.cover" min="0" step="0.01" 143 value="<?php echo esc_attr($insuranceValue); ?>"> 144 145 <?php if ($cod_amount > 0): ?> 146 <input type="number" class="form-control" id="uptake" name="CourierSearch.uptake" 147 min="0" step="0.01" 148 value="<?php echo esc_attr(number_format((float)$cod_amount??0, 2, '.', '')); ?>"> 149 <?php endif; ?> 150 151 <input type="hidden" name="CourierSearch.sortable" value="false"> 145 152 <input class="form-check-input" type="checkbox" id="sortable" 146 153 name="CourierSearch.sortable" <?php echo get_option( 'blpaczka_package_sortable' ) === 'yes' ? 'checked' : ''; ?> 147 154 > 148 155 156 <input type="hidden" name="CourierSearch.no_pickup" value="false"> 149 157 <input class="form-check-input" type="checkbox" id="no_pickup" 150 158 name="CourierSearch.no_pickup" <?php echo get_option( 'blpaczka_package_no_pickup' ) === 'yes' ? 'checked' : ''; ?> … … 154 162 value="<?php echo esc_attr( gmdate( 'Y-m-d', strtotime( '+1 day' ) ) ); ?>" 155 163 > 156 <input class="form-control" type=" number" id="pickup_ready_time"157 name=" Cart.0.Order.pickup_ready_time"164 <input class="form-control" type="time" id="pickup_ready_time" 165 name="pickup_ready_time" 158 166 value="<?php echo esc_attr(get_option( 'blpaczka_package_pickup_ready_time' )) ?: ''; ?>" 159 167 > 160 <input class="form-control" type="number" id="pickup_ready_time_minute" 161 name="Cart.0.Order.pickup_ready_time_minute" 162 value="<?php echo esc_attr(get_option( 'blpaczka_package_pickup_ready_time_minute' )) ?: ''; ?>" 163 >164 <input class="form-control" type=" number" id="pickup_close_time"165 name=" Cart.0.Order.pickup_close_time"168 <!-- <input class="form-control" type="number" id="pickup_ready_time_minute"--> 169 <!-- name="Cart.0.Order.pickup_ready_time_minute"--> 170 <!-- value="--><?php //echo esc_attr(get_option( 'blpaczka_package_pickup_ready_time_minute' )) ?: ''; ?><!--"--> 171 <!-- >--> 172 <input class="form-control" type="time" id="pickup_close_time" 173 name="pickup_close_time" 166 174 value="<?php echo esc_attr(get_option( 'blpaczka_package_pickup_close_time' )) ?: ''; ?>" 167 175 > 168 176 169 <input class="form-control" type="number" id="pickup_close_time_minute" 170 name="Cart.0.Order.pickup_close_time_minute" 171 value="<?php echo esc_attr(get_option( 'blpaczka_package_pickup_close_time_minute' )) ?: ''; ?>" 172 >177 <!-- <input class="form-control" type="number" id="pickup_close_time_minute"--> 178 <!-- name="Cart.0.Order.pickup_close_time_minute"--> 179 <!-- value="--><?php //echo esc_attr(get_option( 'blpaczka_package_pickup_close_time_minute' )) ?: ''; ?><!--"--> 180 <!-- >--> 173 181 174 182 <input type="text" class="form-control" id="sender_name" name="Cart.0.Order.name" … … 207 215 > 208 216 <input type="text" class="form-control" id="sender_name" name="Cart.0.Order.taker_phone" 209 value="<?php echo esc_attr($orderData['billing']['phone']); ?>"> 217 value="<?php echo esc_attr(str_replace(' ', '', $orderData['billing']['phone'])); ?>"> 218 210 219 <input type="text" class="form-control" id="sender_name" name="Cart.0.Order.taker_email" 211 220 value="<?php echo esc_attr($orderData['billing']['email']); ?>"> … … 235 244 </div> 236 245 <?php 246 247 $templates = get_option('blpaczka_templates', []); 248 if (!empty($templates)): ?> 249 <select name="template_select" class=" template_select"> 250 <?php if (!empty($templates)): ?> 251 <option value=""><?php esc_html_e('Domyślnie', 'blpaczka'); ?></option> 252 <?php foreach ($templates as $slug => $template): ?> 253 <option value="<?php echo esc_attr($slug); ?>"> 254 <?php echo esc_html($template['Nazwa szablonu'] ?? $slug); ?> 255 </option> 256 <?php endforeach; ?> 257 <?php else: ?> 258 <option value=""><?php esc_html_e('Brak stworzonych szablonów', 'blpaczka'); ?></option> 259 <?php endif; ?> 260 </select> 261 262 263 <?php 264 endif; 265 237 266 if (!empty($shipping_settings['blpaczka_settings_courier'])): ?> 238 <button type="submit" class="create-order-list-button button-secondary"> Szybkie zamówienie267 <button type="submit" class="create-order-list-button button-secondary">Zamów 239 268 - <?php echo esc_html(ucfirst($shipping_settings['blpaczka_settings_courier'])); ?> 🚚 240 269 </button> -
blpaczka/tags/1.1.0/templates/shipment-form.php
r3203142 r3220107 19 19 20 20 $is_cod_payment = $orderData['payment_method'] === 'cod'; 21 $insuranceValue = BLPACZKA_calculate_insurance($orderSum, $is_cod_payment); 21 22 $cod_amount = $is_cod_payment ? $orderSum : 0; 22 23 ?> … … 31 32 <?php 32 33 if ( empty( get_option( 'blpaczka_auth_key' ) ) || empty( get_option( 'blpaczka_auth_login' ) ) ) { 33 echo '<p style="color: #4285F4;">M ożesz ustawić autoryzację w ustawieniach wtyczki BLPaczka</p>';34 echo '<p style="color: #4285F4;">Musisz ustawić autoryzację w ustawieniach wtyczki BLPaczka</p>'; 34 35 } 35 36 ?> … … 45 46 <div class="col col-6"> 46 47 <h1 class="py-1">Dane przesyłki📦:</h1> 48 <div class="form-group"> 49 <?php 50 $templates = get_option('blpaczka_templates', []); 51 if (!empty($templates)): ?> 52 <select name="template_select" class=" template_select"> 53 <?php if (!empty($templates)): ?> 54 <option value=""><?php esc_html_e('Domyślnie', 'blpaczka'); ?></option> 55 <?php foreach ($templates as $slug => $template): ?> 56 <option value="<?php echo esc_attr($slug); ?>"> 57 <?php echo esc_html($template['Nazwa szablonu'] ?? $slug); ?> 58 </option> 59 <?php endforeach; ?> 60 <?php else: ?> 61 <option value=""><?php esc_html_e('Brak stworzonych szablonów', 'blpaczka'); ?></option> 62 <?php endif; ?> 63 </select> 64 <?php endif; ?> 65 66 <script> 67 jQuery(document).ready(function($) { 68 const templates = <?php echo json_encode(get_option('blpaczka_templates', [])); ?>; 69 70 $('.template_select').selectize({ 71 placeholder: 'Wybierz szablon', 72 onChange: function(value) { 73 if (templates[value]) { 74 const template = templates[value]; 75 $('#type').val(template['Typ paczki'] || 'package').trigger('change'); 76 $('#weight').val(template['Waga paczki (kg)'] || ''); 77 $('#side_x').val(template['Długość paczki (cm)'] || ''); 78 $('#side_y').val(template['Szerokość paczki (cm)'] || ''); 79 $('#side_z').val(template['Wysokość paczki (cm)'] || ''); 80 $('#sortable').prop('checked', template['Paczka sortowalna (paczka o kształcie prostopadłościanu)'] || false); 81 $('#no_pickup').prop('checked', template['Nie zamawiaj podjazdu'] || false); 82 } 83 } 84 }); 85 }); 86 87 </script> 88 </div> 47 89 48 90 <div class="form-group row py-1"> … … 51 93 kuriera:</label> 52 94 <div class="col-sm-8 "> 53 <?php if ( ! empty( $shipping_settings['blpaczka_settings_courier'] ) && $shipping_settings['blpaczka_settings_courier'] !== 'dowolny'): ?>95 <?php if ( ! empty( $shipping_settings['blpaczka_settings_courier'] && $shipping_settings['blpaczka_settings_courier'] !== 'dowolny' ) ): ?> 54 96 <input type="text" class="form-control" id="courier_code" 55 97 name="CourierSearch.courier_code" … … 204 246 <input type="text" class="form-control" id="blpaczka_package_content" 205 247 name="Cart.0.Order.package_content" min="0" 206 value="<?php echo esc_attr(get_option( 'blpaczka_package_content' )); ?>" required> 248 value="<?php echo esc_attr(get_option( 'blpaczka_package_content' )?get_option( 'blpaczka_package_content' ):('Zamówienie: #'.$orderId)); ?> 249 " required> 207 250 </div> 208 251 </div> … … 212 255 for="orderSum">Ubezpieczenie (w zł):</label> 213 256 <div class="col-sm-8"> 214 <input type=" number" class="form-control" id="orderSum" name="CourierSearch.cover"215 min="0" 216 value="<?php echo esc_attr($ orderSum); ?>">257 <input type="text" class="form-control" id="orderSum" name="CourierSearch.cover" 258 min="0" step="0.01" 259 value="<?php echo esc_attr($insuranceValue); ?>"> 217 260 </div> 218 261 </div> … … 234 277 <div class="col-sm-8"> 235 278 <div class="form-check"> 279 <input type="hidden" name="CourierSearch.sortable" value="false"> 236 280 <input class="form-check-input" type="checkbox" id="sortable" 237 281 name="CourierSearch.sortable" <?php echo esc_html(get_option( 'blpaczka_package_sortable' ) === 'yes' ? 'checked' : ''); ?> … … 246 290 <div class="col-sm-8"> 247 291 <div class="form-check"> 292 <input type="hidden" name="CourierSearch.no_pickup" value="false"> 248 293 <input class="form-check-input" type="checkbox" id="no_pickup" 249 294 name="CourierSearch.no_pickup" <?php echo esc_html(get_option( 'blpaczka_package_no_pickup' ) === 'yes' ? 'checked' : ''); ?> … … 423 468 <div class="col-sm-8"> 424 469 <input type="text" class="form-control" id="sender_name" name="Cart.0.Order.taker_phone" 425 value="<?php echo esc_attr( $orderData['billing']['phone']); ?>" required>470 value="<?php echo esc_attr(str_replace(' ', '', $orderData['billing']['phone'])); ?>" required> 426 471 </div> 427 472 </div> -
blpaczka/trunk/README.md
r3203142 r3220107 5 5 Requires at least: 5.3 6 6 Tested up to: 6.6.1 7 Stable tag: 1. 0.37 Stable tag: 1.1.0 8 8 Requires PHP: 7.0 9 9 License: GPLv2 or later … … 75 75 * Kosmetyczne zmiany 76 76 77 = 1.1.0 = 78 * Szablony paczek 79 * Poprawa mapy dla Paczkomat Eco 80 * Poprawa rozdzielania adresów zamówień 81 * Drobne poprawki 82 77 83 == English == 78 84 … … 134 140 * Added support for different types of links (added wp-api) 135 141 * Cosmetic changes 142 143 = 1.1.0 = 144 * Package templates 145 * Map improvement for Paczkomat Eco 146 * Improved order address separation 147 * Minor fixes -
blpaczka/trunk/assets/blpaczka-admin-parcel-send.js
r3173443 r3220107 25 25 }); 26 26 27 $('.blpaczka-shipment-form-list').on('click', function (event) { 28 event.stopPropagation(); 29 }); 30 $('.selectize-control').on('click', function (event) { 31 event.stopPropagation(); 32 }); 33 34 $('.blpaczka-shipment-form-list').on('click', function (event) { 35 event.stopPropagation(); 36 }); 37 38 $('.blpaczka-column').find('*').on('click', function (event) { 39 event.stopPropagation(); 40 }); 41 42 $('.column-blpaczka-column').on('click', function (event) { 43 event.stopPropagation() 44 event.preventDefault() 45 }) 46 27 47 $('#create-order').on('click', function (e) { 28 48 e.preventDefault(); … … 73 93 ) 74 94 .fail((jqXHR) => { 75 createOrderButton.replaceWith('<button class="button-primary" style="border-color: red; background-color: #ff6a6a;">Wystąpiły błędy</button><div>Przejdź do edycji zamówienia, aby nadać paczkę</div>'); 95 let errorMessage = "Wystąpił błąd."; 96 if (jqXHR.responseJSON && jqXHR.responseJSON.message) { 97 errorMessage = jqXHR.responseJSON.message; 98 } 99 100 createOrderButton.replaceWith( 101 '<div style="border-color: red; padding:10px; color:white; background-color: #ff6a6a;">Wystąpił błąd. Przejdź do edycji zamówienia, aby nadać paczkę</div>' + 102 '<div>' + errorMessage + '</div>' 103 ); 76 104 }); 77 105 }) … … 259 287 return JSON.stringify(object); 260 288 } 289 290 291 if ($('.column-blpaczka-column .template_select').length) { 292 $('.column-blpaczka-column .template_select').selectize({ 293 placeholder: 'Wybierz szablon', 294 onChange: function (value) { 295 if (!value || typeof blpaczkaTemplates === 'undefined') { 296 console.warn('Nie wybrano szablonu lub brak danych szablonów.'); 297 return; 298 } 299 300 const template = blpaczkaTemplates[value]; 301 if (template) { 302 const form = $(this.$input).parents('form'); 303 form.find('#type').val(template['Typ paczki'] || 'package').trigger('change'); 304 form.find('#weight').val(template['Waga paczki (kg)'] || ''); 305 form.find('#side_x').val(template['Długość paczki (cm)'] || ''); 306 form.find('#side_y').val(template['Szerokość paczki (cm)'] || ''); 307 form.find('#side_z').val(template['Wysokość paczki (cm)'] || ''); 308 form.find('#sortable').prop('checked', template['Paczka sortowalna (paczka o kształcie prostopadłościanu)'] || false); 309 form.find('#no_pickup').prop('checked', template['Nie zamawiaj podjazdu'] || false); 310 311 console.log('Dane formularza zaktualizowane na podstawie szablonu:', template); 312 } else { 313 console.warn('Nie znaleziono szablonu o wartości:', value); 314 } 315 } 316 }); 317 } 318 319 320 261 321 }); -
blpaczka/trunk/assets/shipment-form.js
r3203142 r3220107 5 5 const blpaczkaMapUrl = blpaczkaData['apiUrl']; 6 6 const nonce = blpaczkaData['nonce']; 7 const paczkomatyCodes = [ 8 'paczkomaty', 9 'paczkomaty_allegro_smart', 10 'paczkomaty_eco', 11 'paczkomaty_to_door', 12 'inpost_eco', 13 ]; 7 14 8 15 $.ajaxSetup({ … … 81 88 type: 'button' 82 89 }); 83 var BLPACZKA_map_address = blpaczkaMapUrl + '/pudo-map?api_type=' + response['courier'] + '&postalCode=' + postalCode; 90 91 var courierCode = getCourierCode(response['courier']); 92 93 var BLPACZKA_map_address = blpaczkaMapUrl + '/pudo-map?api_type=' + courierCode + '&postalCode=' + postalCode; 84 94 85 95 window.addEventListener('message', function (event) { … … 170 180 var postalCodeSelector = $('#ship-to-different-address-checkbox').is(':checked') ? $('#shipping_postcode') : $('#billing_postcode'); 171 181 var postalCode = postalCodeSelector.val().replace('-', ''); 172 var BLPACZKA_map_address = blpaczkaApiUrl + '/pudo-map?api_type=' + $('.blpaczka-selected-courier-code').val() + '&postalCode=' + postalCode; 182 var courierCode = getCourierCode($('.blpaczka-selected-courier-code').val()); 183 184 var BLPACZKA_map_address = blpaczkaApiUrl + '/pudo-map?api_type=' + courierCode + '&postalCode=' + postalCode; 173 185 var BLPACZKA_modal = ` 174 186 <div id="blpaczka-point-checkout-modal"> … … 211 223 return parts.slice(-2).join('.'); 212 224 } 225 226 function getCourierCode(courierCode) { 227 if (paczkomatyCodes.includes(courierCode)) { 228 courierCode = 'paczkomaty'; 229 } 230 231 return courierCode; 232 } 213 233 }); -
blpaczka/trunk/blpaczka.php
r3203142 r3220107 3 3 * Plugin Name: BLPaczka 4 4 * Description: Tanie przesyłki prosto z Twojego sklepu 5 * Version: 1. 0.35 * Version: 1.1.0 6 6 * Author: BLPaczka 7 7 * Author URI: https://blpaczka.com … … 44 44 require_once __DIR__ . '/src/settings.php'; 45 45 require_once __DIR__ . '/src/BLPaczkaRestRoutes.php'; 46 47 if (is_admin()) 48 require_once __DIR__ . '/src/BLPaczkaTemplates.php'; 49 50 46 51 47 52 use BLPaczka\BLPaczkaWoocommerce\BLPaczkaWooBlocks; … … 284 289 } 285 290 291 function parseAddress(string $address): array { 292 $street = ''; 293 $houseNumber = ''; 294 $apartmentNumber = ''; 295 296 $address = trim(preg_replace('/\s+/', ' ', $address)); 297 298 $pattern = '/^([\p{L}\d\s.,-]+?)\s+(\d+[a-zA-Z\-]*)\s*(?:[\/\s]*(lok\.?|m\.?|)(\d*[a-zA-Z]*))?$/u'; 299 300 if (preg_match($pattern, $address, $matches)) { 301 $street = trim($matches[1] ?? ''); 302 $houseNumber = trim($matches[2] ?? ''); 303 $apartmentNumber = trim($matches[4] ?? ''); 304 } else { 305 if (function_exists('wc_get_logger')) { 306 $logger = wc_get_logger(); 307 $logger->error("Nie udało się rozpoznać adresu: $address", ['source' => 'parseAddress']); 308 } 309 } 310 311 return [ 312 'street' => $street, 313 'houseNumber' => $houseNumber, 314 'apartmentNumber' => $apartmentNumber, 315 ]; 316 } 317 286 318 function BLPACZKA_blpaczka_shipment_meta_box( $post ) { 287 319 $order = wc_get_order( BLPACZKA_get_order_id( $post ) ); … … 298 330 $orderSum = $orderTotal - $shippingTotal; 299 331 300 $patternToExplodeAddress = '/^(.*?)\s+(\d+(?:\s*m)?)(?:\s*(?:m|\/)\.?(\w+))?(?:,\s*(\w+))?\s*$/'; 301 $street = ''; 302 $houseNumber = ''; 303 $apartmentNumber = ''; 304 305 $address = $orderData['shipping']['address_1'] . ' ' . $orderData['shipping']['address_2']; 306 307 if ( preg_match( $patternToExplodeAddress, trim( $address ), $matches ) ) { 308 $street = $matches[1] ?? ''; 309 $houseNumber = $matches[2] ?? ''; 310 $apartmentNumber = $matches[3] ?? ''; 311 } 312 313 if ( BLPACZKA_is_HPOS() ) { 332 $address = $orderData['shipping']['address_1'] . ' ' . $orderData['shipping']['address_2']; 333 $result = parseAddress($address); 334 335 $street = $result['street'] ?? ''; 336 $houseNumber = $result['houseNumber'] ?? ''; 337 $apartmentNumber = $result['apartmentNumber'] ?? ''; 338 339 340 341 if ( BLPACZKA_is_HPOS() ) { 314 342 $blpaczkaOrderId = $order->get_meta( 'BLPACZKA_blpaczka_order_id' ); 315 343 } else { … … 452 480 $shipping_settings = get_option( $option_key ); 453 481 454 $patternToExplodeAddress = '/^(.*?)\s+(\d+(?:\s*m)?)(?:\s*(?:m|\/)\.?(\w+))?(?:,\s*(\w+))?\s*$/';455 $street = '';456 $houseNumber = '';457 $apartmentNumber = '';458 459 482 $orderData = BLPACZKA_get_order_data( $order ); 460 483 … … 466 489 $address = $orderData['shipping']['address_1'] . ' ' . $orderData['shipping']['address_2']; 467 490 468 if ( preg_match( $patternToExplodeAddress, trim( $address ), $matches ) ) { 469 $street = $matches[1] ?? ''; 470 $houseNumber = $matches[2] ?? '';471 $apartmentNumber = $matches[3] ?? '';472 } 491 $result = parseAddress($address); 492 493 $street = $result['street'] ?? ''; 494 $houseNumber = $result['houseNumber'] ?? ''; 495 $apartmentNumber = $result['apartmentNumber'] ?? ''; 473 496 474 497 if ( BLPACZKA_is_HPOS() ) { … … 623 646 return $flat_rate_instances; 624 647 } 648 649 function BLPACZKA_calculate_insurance($orderSum, $isCod) { 650 $autoPrepaidInsurance = get_option('blpaczka_auto_prepaid_insurance') === 'yes'; 651 $fixedPrepaidInsurance = get_option('blpaczka_fixed_prepaid_insurance', 0); 652 $autoCodInsurance = get_option('blpaczka_auto_cod_insurance') === 'yes'; 653 $fixedCodInsurance = get_option('blpaczka_fixed_cod_insurance', 0); 654 655 if (!$isCod) { 656 return $autoPrepaidInsurance ? $orderSum : $fixedPrepaidInsurance; 657 } 658 659 return $autoCodInsurance ? $orderSum : $fixedCodInsurance; 660 } 661 -
blpaczka/trunk/readme.txt
r3203142 r3220107 4 4 Requires at least: 5.3 5 5 Tested up to: 6.6.1 6 Stable tag: 1. 0.36 Stable tag: 1.1.0 7 7 Requires PHP: 7.0 8 8 License: GPLv2 or later … … 76 76 * Kosmetyczne zmiany 77 77 78 = 1.1.0 = 79 * Szablony paczek 80 * Poprawa mapy dla Paczkomat Eco 81 * Poprawa rozdzielania adresów zamówień 82 * Drobne poprawki -
blpaczka/trunk/src/BLPaczkaRestRoutes.php
r3203142 r3220107 2 2 /** 3 3 * @package BLPaczka 4 * @version 1. 0.34 * @version 1.1.0 5 5 */ 6 6 if ( ! defined( 'ABSPATH' ) ) { … … 61 61 unset($requestBody['pickup_close_time']); 62 62 } 63 if (!empty($requestBody['CourierSearch']['sortable'])) { 64 $requestBody['CourierSearch']['sortable'] = $requestBody['CourierSearch']['sortable'] === 'false' ? false : true; 65 } 66 if (!empty($requestBody['CourierSearch']['no_pickup'])) { 67 $requestBody['CourierSearch']['no_pickup'] = $requestBody['CourierSearch']['no_pickup'] === 'false' ? false : true; 68 } 63 69 64 70 $postId = $requestBody['post_id']; … … 109 115 $url = BLPACZKA_API_URL . '/api/getValuation.json'; 110 116 $requestBody = json_decode($request->get_body(), true); 117 118 if (!empty($requestBody['CourierSearch']['sortable'])) { 119 $requestBody['CourierSearch']['sortable'] = $requestBody['CourierSearch']['sortable'] === 'false' ? false : true; 120 } 121 if (!empty($requestBody['CourierSearch']['no_pickup'])) { 122 $requestBody['CourierSearch']['no_pickup'] = $requestBody['CourierSearch']['no_pickup'] === 'false' ? false : true; 123 } 111 124 112 125 $requestBody['CourierSearch']['postal_delivery'] = $requestBody['Cart'][0]['Order']['taker_postal']; -
blpaczka/trunk/src/BLPaczkaWooBlocks.php
r3203142 r3220107 2 2 /** 3 3 * @package BLPaczka 4 * @version 1. 0.34 * @version 1.1.0 5 5 */ 6 6 namespace BLPaczka\BLPaczkaWoocommerce; -
blpaczka/trunk/src/settings.php
r3203142 r3220107 1 1 <?php 2 2 3 /** 3 4 * @package BLPaczka 4 * @version 1. 0.35 * @version 1.1.0 5 6 */ 6 7 if ( ! defined( 'ABSPATH' ) ) { … … 253 254 'id' => 'custom_settings_overview', 254 255 ], 256 257 [ 258 'title' => 'Ustawienia ubezpieczeń', 259 'type' => 'title', 260 'id' => 'blpaczka_insurance_settings', 261 ], 262 [ 263 'title' => 'Ubezpieczenie przesyłki przedpłaconej', 264 'type' => 'checkbox', 265 'id' => 'blpaczka_auto_prepaid_insurance', 266 'default' => 'no', 267 'desc' => 'Zaznacz, aby automatycznie ustawić ubezpieczenie przesyłki przedpłaconej na sumę produktów zamówienia', 268 ], 269 [ 270 'title' => 'Stała wartość ubezpieczenia przesyłki przedpłaconej (zł)', 271 'type' => 'number', 272 'id' => 'blpaczka_fixed_prepaid_insurance', 273 'default' => '0', 274 'custom_attributes' => ['step' => '0.01', 'min' => '0'], 275 'desc' => 'Wprowadź stałą wartość ubezpieczenia dla przesyłki przedpłaconej, jeśli opcja automatyczna jest wyłączona', 276 ], 277 [ 278 'title' => 'Ubezpieczenie przesyłki pobraniowej', 279 'type' => 'checkbox', 280 'id' => 'blpaczka_auto_cod_insurance', 281 'default' => 'no', 282 'desc' => 'Zaznacz, aby automatycznie ustawić ubezpieczenie przesyłki pobraniowej na sumę produktów zamówienia', 283 ], 284 [ 285 'title' => 'Stała wartość ubezpieczenia przesyłki pobraniowej (zł)', 286 'type' => 'number', 287 'id' => 'blpaczka_fixed_cod_insurance', 288 'css' => 'min-width:300px;', 289 'default' => '0', 290 'custom_attributes' => ['step' => '0.01', 'min' => '0'], 291 'desc' => 'Wprowadź stałą wartość ubezpieczenia dla przesyłki pobraniowej, jeśli opcja automatyczna jest wyłączona', 292 ], 293 [ 294 'type' => 'sectionend', 295 'id' => 'blpaczka_insurance_settings', 296 ], 297 255 298 ]; 256 299 } … … 263 306 264 307 WC_Admin_Settings::output_fields( $settings ); 308 ?> 309 <script> 310 document.addEventListener('DOMContentLoaded', function () { 311 const prepaidCheckbox = document.querySelector('#blpaczka_auto_prepaid_insurance'); 312 const prepaidInput = document.querySelector('#blpaczka_fixed_prepaid_insurance'); 313 const codCheckbox = document.querySelector('#blpaczka_auto_cod_insurance'); 314 const codInput = document.querySelector('#blpaczka_fixed_cod_insurance'); 315 316 function toggleInputState(checkbox, input) { 317 if (checkbox.checked) { 318 input.disabled = true; 319 input.value = ''; 320 } else { 321 input.disabled = false; 322 } 323 } 324 325 prepaidCheckbox.addEventListener('change', function () { 326 toggleInputState(prepaidCheckbox, prepaidInput); 327 }); 328 329 codCheckbox.addEventListener('change', function () { 330 toggleInputState(codCheckbox, codInput); 331 }); 332 333 toggleInputState(prepaidCheckbox, prepaidInput); 334 toggleInputState(codCheckbox, codInput); 335 }); 336 337 338 </script> 339 <?php 265 340 } 266 341 … … 339 414 'nonce' => wp_create_nonce( 'wp_rest' ), 340 415 ] ); 416 341 417 } 342 } 343 344 add_filter( 'woocommerce_shipping_instance_form_fields_flat_rate', 'BLPACZKA_add_custom_shipping_option' ); 418 419 wp_enqueue_script('selectize-js', 'https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.6/js/standalone/selectize.min.js', array('jquery'), null, true); 420 wp_enqueue_style('selectize-css', 'https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.6/css/selectize.min.css', array(), null); 421 422 } 423 424 add_action( 'woocommerce_init', function () { 425 $shipping_methods = WC()->shipping->get_shipping_methods(); 426 foreach ( $shipping_methods as $shipping_method ) { 427 add_filter( 'woocommerce_shipping_instance_form_fields_' . $shipping_method->id, 428 'BLPACZKA_add_custom_shipping_option' ); 429 } 430 } ); 431 432 433 434 345 435 add_action( 'woocommerce_sections_blpaczka_settings', 'BLPACZKA_action_woocommerce_sections_blpaczka_settings', 10 ); 346 436 add_action( 'woocommerce_settings_blpaczka_settings', 'BLPACZKA_action_woocommerce_settings_blpaczka_settings', 10 ); … … 349 439 add_filter( 'woocommerce_settings_tabs_array', 'BLPACZKA_filter_woocommerce_settings_tabs_array', 99 ); 350 440 add_action( 'admin_enqueue_scripts', 'blpaczka_enqueue_admin_scripts' ); 351 352 353 354 355 356 357 358 359 360 361 -
blpaczka/trunk/templates/list-shipment-form.php
r3173443 r3220107 19 19 $is_cod_payment = $orderData['payment_method'] === 'cod'; 20 20 $cod_amount = $is_cod_payment ? $orderSum : 0; 21 $insuranceValue = BLPACZKA_calculate_insurance($orderSum, $is_cod_payment); 21 22 ?> 22 23 … … 133 134 134 135 <input type="text" class="form-control" id="blpaczka_package_content" 135 name="Cart.0.Order.package_content" min="0" 136 value="<?php echo esc_attr(get_option( 'blpaczka_package_content' )); ?>"> 137 138 <input type="number" class="form-control" id="orderSum" name="CourierSearch.cover" min="0" 139 value="<?php echo esc_attr($orderSum); ?>"> 140 141 <input type="number" class="form-control" id="uptake" name="CourierSearch.uptake" min="0" 142 min="0" 143 value="<?php echo esc_attr($cod_amount); ?>"> 144 136 name="Cart.0.Order.package_content" 137 value="<?php 138 $packageContent = get_option('blpaczka_package_content'); 139 echo esc_attr(!empty($packageContent) ? $packageContent : 'Zamówienie: #'.$orderId); ?>"> 140 141 142 <input type="number" class="form-control" id="orderSum" name="CourierSearch.cover" min="0" step="0.01" 143 value="<?php echo esc_attr($insuranceValue); ?>"> 144 145 <?php if ($cod_amount > 0): ?> 146 <input type="number" class="form-control" id="uptake" name="CourierSearch.uptake" 147 min="0" step="0.01" 148 value="<?php echo esc_attr(number_format((float)$cod_amount??0, 2, '.', '')); ?>"> 149 <?php endif; ?> 150 151 <input type="hidden" name="CourierSearch.sortable" value="false"> 145 152 <input class="form-check-input" type="checkbox" id="sortable" 146 153 name="CourierSearch.sortable" <?php echo get_option( 'blpaczka_package_sortable' ) === 'yes' ? 'checked' : ''; ?> 147 154 > 148 155 156 <input type="hidden" name="CourierSearch.no_pickup" value="false"> 149 157 <input class="form-check-input" type="checkbox" id="no_pickup" 150 158 name="CourierSearch.no_pickup" <?php echo get_option( 'blpaczka_package_no_pickup' ) === 'yes' ? 'checked' : ''; ?> … … 154 162 value="<?php echo esc_attr( gmdate( 'Y-m-d', strtotime( '+1 day' ) ) ); ?>" 155 163 > 156 <input class="form-control" type=" number" id="pickup_ready_time"157 name=" Cart.0.Order.pickup_ready_time"164 <input class="form-control" type="time" id="pickup_ready_time" 165 name="pickup_ready_time" 158 166 value="<?php echo esc_attr(get_option( 'blpaczka_package_pickup_ready_time' )) ?: ''; ?>" 159 167 > 160 <input class="form-control" type="number" id="pickup_ready_time_minute" 161 name="Cart.0.Order.pickup_ready_time_minute" 162 value="<?php echo esc_attr(get_option( 'blpaczka_package_pickup_ready_time_minute' )) ?: ''; ?>" 163 >164 <input class="form-control" type=" number" id="pickup_close_time"165 name=" Cart.0.Order.pickup_close_time"168 <!-- <input class="form-control" type="number" id="pickup_ready_time_minute"--> 169 <!-- name="Cart.0.Order.pickup_ready_time_minute"--> 170 <!-- value="--><?php //echo esc_attr(get_option( 'blpaczka_package_pickup_ready_time_minute' )) ?: ''; ?><!--"--> 171 <!-- >--> 172 <input class="form-control" type="time" id="pickup_close_time" 173 name="pickup_close_time" 166 174 value="<?php echo esc_attr(get_option( 'blpaczka_package_pickup_close_time' )) ?: ''; ?>" 167 175 > 168 176 169 <input class="form-control" type="number" id="pickup_close_time_minute" 170 name="Cart.0.Order.pickup_close_time_minute" 171 value="<?php echo esc_attr(get_option( 'blpaczka_package_pickup_close_time_minute' )) ?: ''; ?>" 172 >177 <!-- <input class="form-control" type="number" id="pickup_close_time_minute"--> 178 <!-- name="Cart.0.Order.pickup_close_time_minute"--> 179 <!-- value="--><?php //echo esc_attr(get_option( 'blpaczka_package_pickup_close_time_minute' )) ?: ''; ?><!--"--> 180 <!-- >--> 173 181 174 182 <input type="text" class="form-control" id="sender_name" name="Cart.0.Order.name" … … 207 215 > 208 216 <input type="text" class="form-control" id="sender_name" name="Cart.0.Order.taker_phone" 209 value="<?php echo esc_attr($orderData['billing']['phone']); ?>"> 217 value="<?php echo esc_attr(str_replace(' ', '', $orderData['billing']['phone'])); ?>"> 218 210 219 <input type="text" class="form-control" id="sender_name" name="Cart.0.Order.taker_email" 211 220 value="<?php echo esc_attr($orderData['billing']['email']); ?>"> … … 235 244 </div> 236 245 <?php 246 247 $templates = get_option('blpaczka_templates', []); 248 if (!empty($templates)): ?> 249 <select name="template_select" class=" template_select"> 250 <?php if (!empty($templates)): ?> 251 <option value=""><?php esc_html_e('Domyślnie', 'blpaczka'); ?></option> 252 <?php foreach ($templates as $slug => $template): ?> 253 <option value="<?php echo esc_attr($slug); ?>"> 254 <?php echo esc_html($template['Nazwa szablonu'] ?? $slug); ?> 255 </option> 256 <?php endforeach; ?> 257 <?php else: ?> 258 <option value=""><?php esc_html_e('Brak stworzonych szablonów', 'blpaczka'); ?></option> 259 <?php endif; ?> 260 </select> 261 262 263 <?php 264 endif; 265 237 266 if (!empty($shipping_settings['blpaczka_settings_courier'])): ?> 238 <button type="submit" class="create-order-list-button button-secondary"> Szybkie zamówienie267 <button type="submit" class="create-order-list-button button-secondary">Zamów 239 268 - <?php echo esc_html(ucfirst($shipping_settings['blpaczka_settings_courier'])); ?> 🚚 240 269 </button> -
blpaczka/trunk/templates/shipment-form.php
r3203142 r3220107 19 19 20 20 $is_cod_payment = $orderData['payment_method'] === 'cod'; 21 $insuranceValue = BLPACZKA_calculate_insurance($orderSum, $is_cod_payment); 21 22 $cod_amount = $is_cod_payment ? $orderSum : 0; 22 23 ?> … … 31 32 <?php 32 33 if ( empty( get_option( 'blpaczka_auth_key' ) ) || empty( get_option( 'blpaczka_auth_login' ) ) ) { 33 echo '<p style="color: #4285F4;">M ożesz ustawić autoryzację w ustawieniach wtyczki BLPaczka</p>';34 echo '<p style="color: #4285F4;">Musisz ustawić autoryzację w ustawieniach wtyczki BLPaczka</p>'; 34 35 } 35 36 ?> … … 45 46 <div class="col col-6"> 46 47 <h1 class="py-1">Dane przesyłki📦:</h1> 48 <div class="form-group"> 49 <?php 50 $templates = get_option('blpaczka_templates', []); 51 if (!empty($templates)): ?> 52 <select name="template_select" class=" template_select"> 53 <?php if (!empty($templates)): ?> 54 <option value=""><?php esc_html_e('Domyślnie', 'blpaczka'); ?></option> 55 <?php foreach ($templates as $slug => $template): ?> 56 <option value="<?php echo esc_attr($slug); ?>"> 57 <?php echo esc_html($template['Nazwa szablonu'] ?? $slug); ?> 58 </option> 59 <?php endforeach; ?> 60 <?php else: ?> 61 <option value=""><?php esc_html_e('Brak stworzonych szablonów', 'blpaczka'); ?></option> 62 <?php endif; ?> 63 </select> 64 <?php endif; ?> 65 66 <script> 67 jQuery(document).ready(function($) { 68 const templates = <?php echo json_encode(get_option('blpaczka_templates', [])); ?>; 69 70 $('.template_select').selectize({ 71 placeholder: 'Wybierz szablon', 72 onChange: function(value) { 73 if (templates[value]) { 74 const template = templates[value]; 75 $('#type').val(template['Typ paczki'] || 'package').trigger('change'); 76 $('#weight').val(template['Waga paczki (kg)'] || ''); 77 $('#side_x').val(template['Długość paczki (cm)'] || ''); 78 $('#side_y').val(template['Szerokość paczki (cm)'] || ''); 79 $('#side_z').val(template['Wysokość paczki (cm)'] || ''); 80 $('#sortable').prop('checked', template['Paczka sortowalna (paczka o kształcie prostopadłościanu)'] || false); 81 $('#no_pickup').prop('checked', template['Nie zamawiaj podjazdu'] || false); 82 } 83 } 84 }); 85 }); 86 87 </script> 88 </div> 47 89 48 90 <div class="form-group row py-1"> … … 51 93 kuriera:</label> 52 94 <div class="col-sm-8 "> 53 <?php if ( ! empty( $shipping_settings['blpaczka_settings_courier'] ) && $shipping_settings['blpaczka_settings_courier'] !== 'dowolny'): ?>95 <?php if ( ! empty( $shipping_settings['blpaczka_settings_courier'] && $shipping_settings['blpaczka_settings_courier'] !== 'dowolny' ) ): ?> 54 96 <input type="text" class="form-control" id="courier_code" 55 97 name="CourierSearch.courier_code" … … 204 246 <input type="text" class="form-control" id="blpaczka_package_content" 205 247 name="Cart.0.Order.package_content" min="0" 206 value="<?php echo esc_attr(get_option( 'blpaczka_package_content' )); ?>" required> 248 value="<?php echo esc_attr(get_option( 'blpaczka_package_content' )?get_option( 'blpaczka_package_content' ):('Zamówienie: #'.$orderId)); ?> 249 " required> 207 250 </div> 208 251 </div> … … 212 255 for="orderSum">Ubezpieczenie (w zł):</label> 213 256 <div class="col-sm-8"> 214 <input type=" number" class="form-control" id="orderSum" name="CourierSearch.cover"215 min="0" 216 value="<?php echo esc_attr($ orderSum); ?>">257 <input type="text" class="form-control" id="orderSum" name="CourierSearch.cover" 258 min="0" step="0.01" 259 value="<?php echo esc_attr($insuranceValue); ?>"> 217 260 </div> 218 261 </div> … … 234 277 <div class="col-sm-8"> 235 278 <div class="form-check"> 279 <input type="hidden" name="CourierSearch.sortable" value="false"> 236 280 <input class="form-check-input" type="checkbox" id="sortable" 237 281 name="CourierSearch.sortable" <?php echo esc_html(get_option( 'blpaczka_package_sortable' ) === 'yes' ? 'checked' : ''); ?> … … 246 290 <div class="col-sm-8"> 247 291 <div class="form-check"> 292 <input type="hidden" name="CourierSearch.no_pickup" value="false"> 248 293 <input class="form-check-input" type="checkbox" id="no_pickup" 249 294 name="CourierSearch.no_pickup" <?php echo esc_html(get_option( 'blpaczka_package_no_pickup' ) === 'yes' ? 'checked' : ''); ?> … … 423 468 <div class="col-sm-8"> 424 469 <input type="text" class="form-control" id="sender_name" name="Cart.0.Order.taker_phone" 425 value="<?php echo esc_attr( $orderData['billing']['phone']); ?>" required>470 value="<?php echo esc_attr(str_replace(' ', '', $orderData['billing']['phone'])); ?>" required> 426 471 </div> 427 472 </div>
Note: See TracChangeset
for help on using the changeset viewer.