Changeset 3370495
- Timestamp:
- 09/30/2025 01:39:03 PM (6 months ago)
- Location:
- baselinker-woo/trunk
- Files:
-
- 2 edited
-
baselinker.php (modified) (18 diffs)
-
readme.txt (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
baselinker-woo/trunk/baselinker.php
r3307072 r3370495 2 2 /** 3 3 * @package BaseLinker 4 * @version 1.0.2 64 * @version 1.0.27 5 5 */ 6 6 /* … … 11 11 Domain Path: /languages 12 12 Author: BaseLinker 13 Version: 1.0.2 613 Version: 1.0.27 14 14 Author URI: http://baselinker.com/ 15 15 License: GPLv3 or later … … 23 23 function baselinker_version($data) 24 24 { 25 return '1.0.2 6';25 return '1.0.27'; 26 26 } 27 27 … … 51 51 52 52 // polkurier 53 if (!empty($response->data['shipping_lines'][0]['method_title'])) 54 { 55 if (preg_match('/orlen/i', $response->data['shipping_lines'][0]['method_title'])) 56 { 57 if ($result = $wpdb->get_row($wpdb->prepare("SELECT meta_value FROM `{$wpdb->prefix}postmeta` WHERE `post_id` = %s AND `meta_key` = '_polkurier_point_id'", (int)$post->get_id()))) 58 { 59 $response->data['bl_delivery_point_id'] = $result->meta_value; 60 $response->data['bl_delivery_point_name'] = $result->meta_value; 61 62 if ($result = $wpdb->get_row($wpdb->prepare("SELECT meta_value FROM `{$wpdb->prefix}postmeta` WHERE `post_id` = %s AND `meta_key` = '_polkurier_point_label'", (int)$post->get_id()))) 63 { 64 if (preg_match('/^(.+?)\r?\n(\d\d-\d{3}) (.+?)\r?\n(.+)/s', $result->meta_value, $m)) 65 { 66 $response->data['bl_delivery_point_address'] = $m[1]; 67 $response->data['bl_delivery_point_postcode'] = $m[2]; 68 $response->data['bl_delivery_point_city'] = $m[3]; 69 $response->data['bl_delivery_point_name'] = $m[4]; 70 } 71 } 72 } 73 } 74 75 // sameday 76 elseif (!empty($response->data['shipping_lines'][0]['method_title']) 77 and preg_match('/sameday point|easybox/i', $response->data['shipping_lines'][0]['method_title'])) 78 { 79 if ($result = $wpdb->get_row($wpdb->prepare("SELECT `meta_value` FROM `{$wpdb->prefix}postmeta` WHERE `post_id` = %s AND `meta_key` = '_sameday_shipping_locker_id'", (int)$post->get_id()))) 80 { 81 $result = json_decode($result->meta_value); 82 83 if ($result) 84 { 85 $response->data['bl_delivery_point_id'] = $result->lockerId; 86 $response->data['bl_delivery_point_name'] = $result->name; 87 $response->data['bl_delivery_point_city'] = $result->city; 88 $response->data['bl_delivery_point_postcode'] = $result->postalCode; 89 $response->data['bl_delivery_point_address'] = $result->address; 90 } 91 } 92 } 93 } // delivery point based on metadata from shipping_lines 53 if (!empty($response->data['shipping_lines'][0]['method_title']) 54 and preg_match('/orlen/i', $response->data['shipping_lines'][0]['method_title'])) 55 { 56 if ($result = $wpdb->get_row($wpdb->prepare("SELECT meta_value FROM `{$wpdb->prefix}postmeta` WHERE `post_id` = %s AND `meta_key` = '_polkurier_point_id'", (int)$post->get_id()))) 57 { 58 $response->data['bl_delivery_point_id'] = $result->meta_value; 59 $response->data['bl_delivery_point_name'] = $result->meta_value; 60 61 if ($result = $wpdb->get_row($wpdb->prepare("SELECT meta_value FROM `{$wpdb->prefix}postmeta` WHERE `post_id` = %s AND `meta_key` = '_polkurier_point_label'", (int)$post->get_id()))) 62 { 63 if (preg_match('/^(.+?)\r?\n(\d\d-\d{3}) (.+?)\r?\n(.+)/s', $result->meta_value, $m)) 64 { 65 $response->data['bl_delivery_point_address'] = $m[1]; 66 $response->data['bl_delivery_point_postcode'] = $m[2]; 67 $response->data['bl_delivery_point_city'] = $m[3]; 68 $response->data['bl_delivery_point_name'] = $m[4]; 69 } 70 } 71 } 72 } 94 73 95 74 $q = array('post_parent' => $post->get_id(), 'post_type' => 'shipment'); 96 75 $shipments = get_children($q); 97 76 98 if ( count($shipments))77 if (!empty($shipments)) 99 78 { 100 79 $shipment = array_shift($shipments); … … 146 125 function baselinker_query_by_order_number($args, $request) 147 126 { 148 if (isset($request['order_number']) and ( intval($request['order_number']) or $request['order_number'] == '%'))127 if (isset($request['order_number']) and (!empty(intval($request['order_number'])) or $request['order_number'] == '%')) 149 128 { 150 129 $args['meta_key'] = isset($request['order_number_meta']) ? $request['order_number_meta'] : '_order_number'; … … 224 203 } 225 204 205 if (!empty($data['cutoff'])) 206 { 207 $cutoff_limit = (int)$data['cutoff']; 208 } 209 226 210 if (isset($data['order']) and preg_match('/^(asc|desc)$/i', $data['order'])) 227 211 { … … 232 216 { 233 217 $args['orderby'] = $data['orderby']; 218 } 219 else 220 { 221 $args['orderby'] = 'ID'; 222 $args['order'] = 'desc'; 234 223 } 235 224 … … 245 234 } 246 235 247 if (isset($data['exclude']) and preg_match('/^\d[\d,]*$/', $ args['exclude']))248 { 249 $args['exclude'] = $data['exclude'];250 } 251 252 if (isset($data['include']) and preg_match('/^\d[\d,]*$/', $ args['include']))253 { 254 $args['include'] = $data['include'];255 } 256 257 if (isset($data['type']) and in_array($ args['type'], ['external', 'grouped', 'simple', 'variable']))236 if (isset($data['exclude']) and preg_match('/^\d[\d,]*$/', $data['exclude'])) 237 { 238 $args['exclude'] = explode(',', $data['exclude']); 239 } 240 241 if (isset($data['include']) and preg_match('/^\d[\d,]*$/', $data['include'])) 242 { 243 $args['include'] = explode(',', $data['include']); 244 } 245 246 if (isset($data['type']) and in_array($data['type'], ['external', 'grouped', 'simple', 'variable'])) 258 247 { 259 248 $args['type'] = $data['type']; … … 275 264 } 276 265 277 if (isset($data['category_id']) and (int)$data['category_id'] )266 if (isset($data['category_id']) and (int)$data['category_id'] > 0) 278 267 { 279 268 foreach (baselinker_category_list($data) as $cat) … … 285 274 } 286 275 } 276 } 277 278 if (!empty($data['min_stock'])) 279 { 280 $args['min_stock'] = $data['min_stock']; 281 } 282 283 if (!empty($data['max_stock'])) 284 { 285 $args['max_stock'] = $data['max_stock']; 286 } 287 288 if (!empty($data['min_price'])) 289 { 290 $args['min_price'] = $data['min_price']; 291 } 292 293 if (!empty($data['max_price'])) 294 { 295 $args['max_price'] = $data['max_price']; 287 296 } 288 297 … … 299 308 do { 300 309 $args['page'] = $page; 301 302 310 $res = wc_get_products($args); 303 311 … … 393 401 while ($variations_subset = array_splice($variation_ids, 0, 100)) 394 402 { 395 $prod_variations = baselinker_product_list(array('include' => $variations_subset, 'type' => 'variation', 'limit' => $args['limit']));403 $prod_variations = baselinker_product_list(array('include' => implode(',', $variations_subset), 'type' => 'variation', 'limit' => $args['limit'])); 396 404 397 405 foreach ($prod_variations as $vid => $v) … … 481 489 $dimensions = array(); 482 490 483 if ( $dim = (int)$variation->get_width())491 if (($dim = (int)$variation->get_width()) > 0) 484 492 { 485 493 $dimensions['width'] = $dim; 486 494 } 487 495 488 if ( $dim = (int)$variation->get_length())496 if (($dim = (int)$variation->get_length()) > 0) 489 497 { 490 498 $dimensions['length'] = $dim; 491 499 } 492 500 493 if ( $dim = (int)$variation->get_height())501 if (($dim = (int)$variation->get_height()) > 0) 494 502 { 495 503 $dimensions['height'] = $dim; … … 575 583 } 576 584 577 // quantity brackets578 $min_stock = $request->get_param('min_stock');579 $max_stock = $request->get_param('max_stock');580 581 if (isset($min_stock) or isset($max_stock))582 {583 $args['post_type'] = array('product', 'product_variation');584 $args['meta_query'][] = array(585 'key' => '_stock',586 'value' => array(isset($min_stock) ? (int)$min_stock : 0, isset($max_stock) ? (int)$max_stock : 99999999),587 'compare' => 'BETWEEN',588 'type' => 'numeric',589 );590 591 }592 593 585 // categories excluded in baselinker 594 586 if ($cats_exclude = $request->get_param('categories_exclude')) … … 615 607 } 616 608 609 function baselinker_custom_query_vars($query, $query_vars) 610 { 611 // quantity brackets 612 if (!empty($query_vars['min_stock']) or !empty($query_vars['max_stock'])) 613 { 614 $min_stock = $query_vars['min_stock'] ?? null; 615 $max_stock = $query_vars['max_stock'] ?? null; 616 617 $query['meta_query'][] = [ 618 'key' => '_stock', 619 'value' => [isset($min_stock) ? (int)$min_stock : 0, isset($max_stock) ? (int)$max_stock : 99999999], 620 'compare' => 'BETWEEN', 621 'type' => 'numeric', 622 ]; 623 } 624 625 // price brackets 626 if (!empty($query_vars['min_price']) or !empty($query_vars['max_price'])) 627 { 628 $min_price = $query_vars['min_price'] ?? null; 629 $max_price = $query_vars['max_price'] ?? null; 630 631 $query['meta_query'][] = [ 632 'key' => '_price', 633 'value' => [isset($min_price) ? (float)$min_price : 0, isset($max_price) ? (float)$max_price : 99999999], 634 'compare' => 'BETWEEN', 635 'type' => 'numeric', 636 ]; 637 } 638 639 return $query; 640 } 641 617 642 618 643 // defining additional REST API endpoints 619 644 add_action('rest_api_init', function() { 620 621 645 register_rest_route('bl/v2', '/shipping_methods/', array('methods' => 'GET', 'callback' => 'baselinker_shipping_methods', 'permission_callback' => '__return_true')); 622 646 register_rest_route('wc-bl/v2', '/product_list/', array('methods' => 'GET', 'callback' => 'baselinker_product_list', 'permission_callback' => 'baselinker_authenticate')); … … 628 652 629 653 add_action('before_woocommerce_init', function() { 630 631 654 if (class_exists(\Automattic\WooCommerce\Utilities\FeaturesUtil::class)) 632 655 { … … 636 659 637 660 add_action('plugins_loaded', function() { 638 639 661 load_plugin_textdomain('baselinker-woo', FALSE, basename(dirname(__FILE__)) . '/languages/'); 640 662 }); … … 645 667 add_filter('woocommerce_rest_prepare_product_object', 'baselinker_prepare_product', 20, 3); 646 668 add_filter('woocommerce_rest_product_object_query', 'baselinker_product_object_query', 10, 2); 669 add_filter('woocommerce_product_data_store_cpt_get_products_query', 'baselinker_custom_query_vars', 10, 2 ); 647 670 ?> -
baselinker-woo/trunk/readme.txt
r3306770 r3370495 2 2 Plugin Name: Base (formerly BaseLinker) - 300+ marketplaces, 150+ carriers & PIM & OMS & WMS in one 3 3 Contributors: baselinker 4 Stable tag: 1.0.2 65 Tested up to: 6.8. 14 Stable tag: 1.0.27 5 Tested up to: 6.8.2 6 6 Requires at least: 4.5.0 7 7 Requires Plugins: woocommerce
Note: See TracChangeset
for help on using the changeset viewer.