Plugin Directory

Changeset 3370495


Ignore:
Timestamp:
09/30/2025 01:39:03 PM (6 months ago)
Author:
baselinker
Message:

trunk even with 1.0.27

Location:
baselinker-woo/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • baselinker-woo/trunk/baselinker.php

    r3307072 r3370495  
    22/**
    33 * @package BaseLinker
    4  * @version 1.0.26
     4 * @version 1.0.27
    55 */
    66/*
     
    1111Domain Path: /languages
    1212Author: BaseLinker
    13 Version: 1.0.26
     13Version: 1.0.27
    1414Author URI: http://baselinker.com/
    1515License: GPLv3 or later
     
    2323function baselinker_version($data)
    2424{
    25     return '1.0.26';
     25    return '1.0.27';
    2626}
    2727
     
    5151
    5252    // 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    }
    9473
    9574    $q = array('post_parent' => $post->get_id(), 'post_type' => 'shipment');
    9675    $shipments = get_children($q);
    9776
    98     if (count($shipments))
     77    if (!empty($shipments))
    9978    {
    10079        $shipment = array_shift($shipments);
     
    146125function baselinker_query_by_order_number($args, $request)
    147126{
    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'] == '%'))
    149128    {
    150129        $args['meta_key'] = isset($request['order_number_meta']) ? $request['order_number_meta'] : '_order_number';
     
    224203    }
    225204
     205    if (!empty($data['cutoff']))
     206    {
     207        $cutoff_limit = (int)$data['cutoff'];
     208    }
     209
    226210    if (isset($data['order']) and preg_match('/^(asc|desc)$/i', $data['order']))
    227211    {
     
    232216    {
    233217        $args['orderby'] = $data['orderby'];
     218    }
     219    else
     220    {
     221        $args['orderby'] = 'ID';
     222        $args['order'] = 'desc';
    234223    }
    235224
     
    245234    }
    246235
    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']))
    258247    {
    259248        $args['type'] = $data['type'];
     
    275264    }
    276265
    277     if (isset($data['category_id']) and (int)$data['category_id'])
     266    if (isset($data['category_id']) and (int)$data['category_id'] > 0)
    278267    {
    279268        foreach (baselinker_category_list($data) as $cat)
     
    285274            }
    286275        }
     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'];
    287296    }
    288297
     
    299308    do {
    300309        $args['page'] = $page;
    301 
    302310        $res = wc_get_products($args);
    303311
     
    393401                        while ($variations_subset = array_splice($variation_ids, 0, 100))
    394402                        {
    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']));
    396404
    397405                            foreach ($prod_variations as $vid => $v)
     
    481489                $dimensions = array();
    482490
    483                 if ($dim = (int)$variation->get_width())
     491                if (($dim = (int)$variation->get_width()) > 0)
    484492                {
    485493                    $dimensions['width'] = $dim;
    486494                }
    487495
    488                 if ($dim = (int)$variation->get_length())
     496                if (($dim = (int)$variation->get_length()) > 0)
    489497                {
    490498                    $dimensions['length'] = $dim;
    491499                }
    492500
    493                 if ($dim = (int)$variation->get_height())
     501                if (($dim = (int)$variation->get_height()) > 0)
    494502                {
    495503                    $dimensions['height'] = $dim;
     
    575583    }
    576584
    577     // quantity brackets
    578     $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 
    593585    // categories excluded in baselinker
    594586    if ($cats_exclude = $request->get_param('categories_exclude'))
     
    615607}
    616608
     609function 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
    617642
    618643// defining additional REST API endpoints
    619644add_action('rest_api_init', function() {
    620 
    621645    register_rest_route('bl/v2', '/shipping_methods/', array('methods' => 'GET', 'callback' => 'baselinker_shipping_methods', 'permission_callback' => '__return_true'));
    622646    register_rest_route('wc-bl/v2', '/product_list/', array('methods' => 'GET', 'callback' => 'baselinker_product_list', 'permission_callback' => 'baselinker_authenticate'));
     
    628652
    629653add_action('before_woocommerce_init', function() {
    630 
    631654    if (class_exists(\Automattic\WooCommerce\Utilities\FeaturesUtil::class))
    632655    {
     
    636659
    637660add_action('plugins_loaded', function() {
    638 
    639661    load_plugin_textdomain('baselinker-woo', FALSE, basename(dirname(__FILE__)) . '/languages/');
    640662});
     
    645667add_filter('woocommerce_rest_prepare_product_object', 'baselinker_prepare_product', 20, 3);
    646668add_filter('woocommerce_rest_product_object_query', 'baselinker_product_object_query', 10, 2);
     669add_filter('woocommerce_product_data_store_cpt_get_products_query', 'baselinker_custom_query_vars', 10, 2 );
    647670?>
  • baselinker-woo/trunk/readme.txt

    r3306770 r3370495  
    22Plugin Name: Base (formerly BaseLinker) - 300+ marketplaces, 150+ carriers & PIM & OMS & WMS in one
    33Contributors: baselinker
    4 Stable tag: 1.0.26
    5 Tested up to: 6.8.1
     4Stable tag: 1.0.27
     5Tested up to: 6.8.2
    66Requires at least: 4.5.0
    77Requires Plugins: woocommerce
Note: See TracChangeset for help on using the changeset viewer.