Plugin Directory

Changeset 3410294


Ignore:
Timestamp:
12/04/2025 02:26:33 AM (3 months ago)
Author:
rermis
Message:

v5.0.19 = * Compatibility with WC 10.3. Variation improvements to queue and packing slip.

Location:
pb-shipping/tags/5.0.19
Files:
2 edited
4 copied

Legend:

Unmodified
Added
Removed
  • pb-shipping/tags/5.0.19/pb_functions.php

    r3360685 r3410294  
    66Author: RLDD
    77Author URI: https://richardlerma.com/contact/
    8 Version: 5.0.18
     8Version: 5.0.19
    99Copyright: (c) 2020-2025 rldd.net - All Rights Reserved
    1010License: GPLv3 or later
    1111License URI: http://www.gnu.org/licenses/gpl-3.0.html
    1212WC requires at least: 8.0
    13 WC tested up to: 10.1
     13WC tested up to: 10.3
    1414*/
    1515
    16 global $espb_version; $espb_version='5.0.18';
     16global $espb_version; $espb_version='5.0.19';
    1717if(!defined('ABSPATH')) exit;
    1818
     
    737737}
    738738
     739add_action('woocommerce_thankyou',function($order_id){
     740  if(!$order_id)return;
     741  update_option('pb_refresh',time());
     742},10,1);
     743
     744add_action('wp_ajax_pb_latest_order','pb_latest_order');
     745function pb_latest_order(){if(!current_user_can('edit_shop_orders'))wp_die('0');echo(int)get_option('pb_refresh',0);wp_die();}
     746
     747
    739748function espb_order_data($order_id) {
    740749  if(!$order_id>0) return;
     
    752761      ,(SELECT GROUP_CONCAT(DISTINCT REPLACE(meta_key,'_pb_label_meta_','')) FROM wp_postmeta WHERE post_id=o.ID AND meta_key LIKE '_pb_label_meta_%' AND LENGTH(meta_value)>6)label_history
    753762      ,LEFT(o.date_created_gmt,10)date_created
    754       ,REPLACE(GROUP_CONCAT(DISTINCT CONCAT('<li class=\'itm\' id=\'',p.ID,'x',po.product_qty+IFNULL(pr.product_qty,0),'\' onclick=\'toggle_item(this);\' title=\'',IFNULL(a.length,0),'x',IFNULL(a.width,0),'x',IFNULL(a.height,0),'\\n',a.weight,'$weight_unit','\'>',po.product_qty+IFNULL(pr.product_qty,0),' x ',p.post_title) SEPARATOR ';'),';','')product_list
     763      ,REPLACE(GROUP_CONCAT(DISTINCT CONCAT('<li class=\'itm\' id=\'',p.ID,'x',po.product_qty+IFNULL(pr.product_qty,0),'\' onclick=\'toggle_item(this);\' title=\'',IFNULL(a.length,0),'x',IFNULL(a.width,0),'x',IFNULL(a.height,0),'\\n',a.weight,'$weight_unit','\'>',po.product_qty+IFNULL(pr.product_qty,0),' x ',p.post_title,a.meta) SEPARATOR ';'),';','')product_list
    755764      ,GROUP_CONCAT(DISTINCT CONCAT(IFNULL(NULLIF(po.variation_id,0),po.product_id),'x',po.product_qty+IFNULL(pr.product_qty,0)))variation_cache
    756765      ,GROUP_CONCAT(CONCAT(po.product_id,'x',po.product_qty+IFNULL(pr.product_qty,0)))product_cache
     
    783792      LEFT JOIN (
    784793        SELECT IFNULL(NULLIF(po.variation_id,0),po.product_id) product_id
     794        ,(SELECT CONCAT('<div class=\'meta\'>',GROUP_CONCAT(DISTINCT CONCAT(UCASE(SUBSTRING(m.meta_key,1,1)),SUBSTRING(m.meta_key,2),':',m.meta_value) SEPARATOR ' | '),'</div>') FROM wp_wc_order_product_lookup pl JOIN wp_woocommerce_order_itemmeta m ON m.order_item_id=pl.order_item_id WHERE pl.order_item_id=po.order_item_id AND pl.variation_id=IFNULL(NULLIF(po.variation_id,0),po.product_id) AND m.meta_key NOT LIKE '\_%' AND m.meta_value IS NOT NULL)meta
    785795        ,IFNULL((SELECT NULLIF(NULLIF(meta_value,''),0) FROM wp_postmeta WHERE post_id=NULLIF(po.variation_id,0) AND meta_key='_weight'),(SELECT NULLIF(NULLIF(meta_value,''),0) FROM wp_postmeta WHERE post_id=NULLIF(po.product_id,0) AND meta_key='_weight'))weight
    786796        ,IFNULL((SELECT NULLIF(NULLIF(meta_value,''),0) FROM wp_postmeta WHERE post_id=NULLIF(po.variation_id,0) AND meta_key='_length'),(SELECT NULLIF(NULLIF(meta_value,''),0) FROM wp_postmeta WHERE post_id=NULLIF(po.product_id,0) AND meta_key='_length'))length
     
    802812    ,(SELECT GROUP_CONCAT(DISTINCT REPLACE(meta_key,'_pb_label_meta_','')) FROM wp_postmeta WHERE post_id=o.ID AND meta_key LIKE '_pb_label_meta_%' AND LENGTH(meta_value)>6)label_history
    803813    ,LEFT(o.post_date,10)date_created
    804     ,REPLACE(GROUP_CONCAT(DISTINCT CONCAT('<li class=\'itm\' id=\'',p.ID,'x',po.product_qty+IFNULL(pr.product_qty,0),'\' onclick=\'toggle_item(this);\' title=\'',IFNULL(a.length,0),'x',IFNULL(a.width,0),'x',IFNULL(a.height,0),'\\n',a.weight,'$weight_unit','\'>',po.product_qty+IFNULL(pr.product_qty,0),' x ',p.post_title,CASE WHEN p.post_parent>0 AND p.post_title NOT LIKE CONCAT('%',RIGHT(p.post_excerpt,LOCATE(':',REVERSE(p.post_excerpt))-1)) THEN IFNULL(CONCAT('<br>',p.post_excerpt),'') ELSE '' END) SEPARATOR ';'),';','')product_list
     814    ,REPLACE(GROUP_CONCAT(DISTINCT CONCAT('<li class=\'itm\' id=\'',p.ID,'x',po.product_qty+IFNULL(pr.product_qty,0),'\' onclick=\'toggle_item(this);\' title=\'',IFNULL(a.length,0),'x',IFNULL(a.width,0),'x',IFNULL(a.height,0),'\\n',a.weight,'$weight_unit','\'>',po.product_qty+IFNULL(pr.product_qty,0),' x ',p.post_title,a.meta,CASE WHEN p.post_parent>0 AND p.post_title NOT LIKE CONCAT('%',RIGHT(p.post_excerpt,LOCATE(':',REVERSE(p.post_excerpt))-1)) THEN IFNULL(CONCAT('<br>',p.post_excerpt),'') ELSE '' END) SEPARATOR ';'),';','')product_list
    805815    ,GROUP_CONCAT(DISTINCT CONCAT(IFNULL(NULLIF(po.variation_id,0),po.product_id),'x',po.product_qty+IFNULL(pr.product_qty,0)))variation_cache
    806816    ,GROUP_CONCAT(CONCAT(po.product_id,'x',po.product_qty+IFNULL(pr.product_qty,0)))product_cache
     
    834844    LEFT JOIN (
    835845      SELECT IFNULL(NULLIF(po.variation_id,0),po.product_id) product_id
     846      ,(SELECT CONCAT('<div class=\'meta\'>',GROUP_CONCAT(DISTINCT CONCAT(UCASE(SUBSTRING(m.meta_key,1,1)),SUBSTRING(m.meta_key,2),':',m.meta_value) SEPARATOR ' | '),'</div>') FROM wp_wc_order_product_lookup pl JOIN wp_woocommerce_order_itemmeta m ON m.order_item_id=pl.order_item_id WHERE pl.order_item_id=po.order_item_id AND pl.variation_id=IFNULL(NULLIF(po.variation_id,0),po.product_id) AND m.meta_key NOT LIKE '\_%' AND m.meta_value IS NOT NULL)meta
    836847      ,IFNULL((SELECT NULLIF(NULLIF(meta_value,''),0) FROM wp_postmeta WHERE post_id=NULLIF(po.variation_id,0) AND meta_key='_weight'),(SELECT NULLIF(NULLIF(meta_value,''),0) FROM wp_postmeta WHERE post_id=NULLIF(po.product_id,0) AND meta_key='_weight'))weight
    837848      ,IFNULL((SELECT NULLIF(NULLIF(meta_value,''),0) FROM wp_postmeta WHERE post_id=NULLIF(po.variation_id,0) AND meta_key='_length'),(SELECT NULLIF(NULLIF(meta_value,''),0) FROM wp_postmeta WHERE post_id=NULLIF(po.product_id,0) AND meta_key='_length'))length
     
    841852      WHERE po.order_id=$order_id
    842853    )a ON a.product_id=IFNULL(NULLIF(po.variation_id,0),po.product_id)
    843     LEFT JOIN wp_posts p ON p.ID=IFNULL(NULLIF(po.variation_id,0),po.product_id)
     854    LEFT JOIN wp_posts p ON p.ID=po.product_id
    844855    WHERE o.post_type IN ('shop_order','import_order')
    845856    AND o.post_status IN ('wc-processing','wc-completed')
     
    15441555    .pb_rpt td a.pb_remove{background:transparent!important;border:none!important;color:#ddd!important}
    15451556    .pb_rpt td a.pb_remove:hover{color:#fff!important;background:red!important}
     1557    .pb_rpt .prd{margin-bottom:1em}
     1558    .prd .meta,.itm .meta{font-size:.9em;padding:.5em 0 0 1em}
    15461559    .module.slip .logo{display:block;margin:0 0 1em}
    15471560    .module .title{float:left;margin:-1.05em -2.7em;background:var(--bg_mod_clr);padding:1em .25em;color:var(--txt_clr);border:1px solid #555;border-left:none;font-family:sans-serif;writing-mode:vertical-lr;-webkit-transform:rotate(-180deg)}
     
    18641877
    18651878    foreach($shipments as $s) {
    1866       $exception=$reship=$rtn_del=0;
     1879      $exception=$reship=0;
    18671880      $max_id=$s->meta_id;
    1868       $msg=$sms=$phone=$new_status=$status=$rtn_accp='';
     1881      $msg=$sms=$phone=$new_status=$status=$rtn_sent=$rtn_del=$delivery_date='';
    18691882      $dir=$s->dir;
    18701883      $fname=ucwords(strtolower($s->fname));
     
    18891902      if(!empty($new_status) && $new_status!=$status) {
    18901903
    1891         if($dir=='outbound' && $channel=='shop_order' && stripos('InTransit,Acceptance',$new_status)!==false) {
     1904        if($dir=='outbound' && $channel=='shop_order' && (stripos($new_status,'InTransit')!==false || stripos($new_status,'Acceptance')!==false)) {
    18921905          if($order_status=='wc-completed' && $email_updates>0 && empty(get_transient("completed_email_sent_$order_id")) && (stripos('Manifest,Pending',$status)!==false || empty($status))) { // Send Tracking email for reships
    18931906            if($to==$email || stripos($email,'@')===false) continue;
     
    19181931            if($exception>0 && $admin_exc_updates>0) {
    19191932              $subject=$msg;
    1920               $body="Hi PB Shipping Admin,<br><br>$msg<br><br>$carrier tracking number: <a href='$track_url' target='_blank'>$tracking_num</a><br><br>This is an automated notification related to order ID $order_id.";
     1933              $body="Hi Shipper,<br><br>$msg<br><br>$carrier tracking number: <a href='$track_url' target='_blank'>$tracking_num</a><br><br>This is an automated notification related to order ID $order_id.";
    19211934              wp_mail($admin_email,$subject,$body,$headers); //$to,$subject,$body,$headers
    19221935            }
     
    19411954        }
    19421955
    1943         if($dir=='inbound' && stripos('InTransit,Acceptance,Delivered',$new_status)!==false) {
     1956        if($dir=='inbound' && (stripos($new_status,'InTransit')!==false || stripos($new_status,'Acceptance')!==false || stripos($new_status,'Delivered')!==false)) {
    19441957          if(stripos($new_status,',')!==false) {$delivery_date=substr($new_status,-10); $new_status=str_replace(", $delivery_date","",$new_status);}
     1958          if(empty($delivery_date)) $delivery_date=get_post_meta($order_id,"delivery_est_days");
    19451959          if(function_exists('espb_track_url')) $track_url=espb_track_url('',$tracking_num); else $track_url="https://parcelsapp.com/en/tracking/$tracking_num";
    19461960          $new_status=trim(preg_replace('/(?<!\ )[A-Z]/',' $0',$new_status)); // Parse into separate words
    1947 
    1948           if(stripos($new_status,'Delivered')!==false) {$msg="Your $site_name return has been $new_status!";$rtn_del=1;}
    1949           elseif(stripos($new_status,'Acceptance')!==false) $msg="Your $site_name return is now in transit.";
    1950           elseif(stripos($new_status,'InTransit')!==false) $msg="Your $site_name return is now in transit.";
    1951           if(empty($msg)) {$msg="Your $site_name shipment has a new event, $new_status:";$rtn_del=1;}
    1952 
    1953           if($admin_rtn_updates>0) {
     1961          $rtn_sent=get_transient("return_sent_$order_id");
     1962          $rtn_del=get_transient("return_del_$order_id");
     1963
     1964          if(stripos($new_status,'Delivered')!==false) {$msg="Your $site_name return has been $new_status!"; if(empty($rtn_del)){$rtn_del=$current_time;set_transient("return_del_$order_id",$current_time,604800);}}
     1965          elseif(stripos($new_status,'Acceptance')!==false) {$msg="Your $site_name return is now in transit."; if(empty($rtn_sent)){$rtn_sent=$current_time;set_transient("return_sent_$order_id",$current_time,604800);}}
     1966          elseif(stripos($new_status,'InTransit')!==false) {$msg="Your $site_name return is now in transit."; if(empty($rtn_sent)){$rtn_sent=$current_time;set_transient("return_sent_$order_id",$current_time,604800);}}
     1967          if(empty($msg)) {$msg="Your $site_name shipment has a new event, $new_status";}
     1968
     1969          if($admin_rtn_updates>0 && ($rtn_sent==$current_time || $rtn_del==$current_time)) {
    19541970            $subject=$msg;
    1955             $body="Hi PB Shipping Admin,<br><br>$msg<br><br>$carrier tracking number: <a href='$track_url' target='_blank'>$tracking_num</a><br><br>This is an automated notification related to order ID $order_id.";
     1971            if(!empty($delivery_date)) $msg.=", estimated delivery: $delivery_date.";
     1972            $body="Hi Shipper,<br><br>$msg<br><br>$carrier tracking number: <a href='$track_url' target='_blank'>$tracking_num</a><br><br>This is an automated notification related to order ID $order_id.";
    19561973            wp_mail($admin_email,$subject,$body,$headers); //$to,$subject,$body,$headers
    1957             $rtn_accp=get_transient("completed_return_sent_$order_id");
    19581974          }
    19591975
    1960           if(empty($rtn_del) && empty($rtn_accp) && $channel=='shop_order' && ($sms_rtn_updates>0 || $email_rtn_updates>0)) {
    1961             set_transient("completed_return_sent_$order_id",$current_time,604800);
     1976          if($channel=='shop_order' && ($sms_rtn_updates>0 || $email_rtn_updates>0) && $rtn_sent==$current_time) {
    19621977            if($sms_rtn_updates>0 && strlen($phone)>=10 && date('H',$now)<20) {
    19631978              $sms="$msg $track_url";
  • pb-shipping/tags/5.0.19/pb_queue.php

    r3325152 r3410294  
    11<?php if(!defined('ABSPATH')) exit;
    2  
     2
    33function espb_queue() {
    44  if(!is_user_logged_in()) {header("Location: ".site_url()."/wp-login.php?redirect_to=".urlencode($_SERVER['REQUEST_URI'])); exit();}
     
    8181       END cutoff
    8282      ,DATE_FORMAT(post_date,'%b %e, %Y<br>%r')order_date
    83       ,GROUP_CONCAT(DISTINCT item SEPARATOR '<br>')items
     83      ,GROUP_CONCAT(DISTINCT CASE
     84        WHEN IFNULL(meta,'')='' THEN item
     85        WHEN '$product_id'='variation_id' THEN CONCAT('<span>',item,'<div class=\'meta\'>',REPLACE(meta,'&#10;','<br>'),'</div></span>')
     86        ELSE CONCAT('<span title=\"',REPLACE(meta,'\"','&quot;'),'\">',item,'</span>')
     87        END SEPARATOR '<br>')items
    8488      ,method
    8589      ,delivery_est
     
    8993          SELECT o.ID, o2.post_type
    9094          ,o.post_date
    91           ,REPLACE(CONCAT((SELECT DISTINCT post_title FROM wp_posts WHERE ID=COALESCE(NULLIF(op.$product_id,0),ip.$product_id,op.product_id)),'(',SUM(IFNULL(op.product_qty,ip.product_qty)),')'),'(1)','')item
     95          ,REPLACE(CONCAT((SELECT DISTINCT post_title FROM wp_posts WHERE ID=op.product_id),'(',SUM(IFNULL(op.product_qty,ip.product_qty)),')'),'(1)','')item
    9296          ,o2.reship
    9397          ,IFNULL((SELECT meta_value FROM wp_postmeta WHERE post_id=o.ID AND meta_key='shipping' LIMIT 1),(SELECT order_item_name FROM wp_woocommerce_order_items WHERE order_id=o.ID AND order_item_type='shipping' LIMIT 1))method
    9498          ,(SELECT NULLIF(m.meta_value,0) FROM wp_woocommerce_order_items oi JOIN wp_woocommerce_order_itemmeta m ON m.order_item_id=oi.order_item_id AND m.meta_key='cost' WHERE oi.order_id=o.ID AND oi.order_item_type='shipping' LIMIT 1)cost
     99          ,(SELECT GROUP_CONCAT(DISTINCT CONCAT(UCASE(SUBSTRING(m.meta_key,1,1)),SUBSTRING(m.meta_key,2),': ',m.meta_value) SEPARATOR '&#10;') FROM wp_wc_order_product_lookup pl JOIN wp_woocommerce_order_itemmeta m ON m.order_item_id=pl.order_item_id WHERE pl.order_id=o.ID AND pl.variation_id=COALESCE(NULLIF(op.variation_id,0),ip.variation_id,0) AND m.meta_key NOT LIKE '\_%' AND m.meta_value IS NOT NULL)meta
    95100          ,(SELECT meta_value FROM wp_postmeta WHERE meta_key='delivery_est' AND post_id=o.ID LIMIT 1)delivery_est
    96101          FROM wp_posts o
     
    144149       END cutoff
    145150      ,DATE_FORMAT(post_date,'%b %e, %Y<br>%r')order_date
    146       ,GROUP_CONCAT(DISTINCT item SEPARATOR '<br>')items
     151      ,GROUP_CONCAT(DISTINCT CASE
     152        WHEN IFNULL(meta,'')='' THEN item
     153        WHEN '$product_id'='variation_id' THEN CONCAT('<div class=\'prd\'>',item,'<div class=\'meta\'>',REPLACE(meta,'&#10;','<br>'),'</div></div>')
     154        ELSE CONCAT('<div class=\'prd\' title=\"',REPLACE(meta,'\"','&quot;'),'\">',item,'</div>')
     155        END SEPARATOR '<br>')items
    147156      ,method
    148157      ,delivery_est
     
    152161          SELECT o.ID, post_type
    153162          ,o.post_date
    154           ,REPLACE(CONCAT((SELECT DISTINCT post_title FROM wp_posts WHERE ID=COALESCE(NULLIF(op.$product_id,0),ip.$product_id,op.product_id)),'(',SUM(IFNULL(op.product_qty,ip.product_qty)),')'),'(1)','')item
     163          ,REPLACE(CONCAT((SELECT DISTINCT post_title FROM wp_posts WHERE ID=op.product_id),'(',SUM(IFNULL(op.product_qty,ip.product_qty)),')'),'(1)','')item
    155164          ,o2.reship
    156165          ,IFNULL((SELECT meta_value FROM wp_postmeta WHERE post_id=o.ID AND meta_key='shipping' LIMIT 1),(SELECT order_item_name FROM wp_woocommerce_order_items WHERE order_id=o.ID AND order_item_type='shipping' LIMIT 1))method
    157166          ,(SELECT NULLIF(m.meta_value,0) FROM wp_woocommerce_order_items oi JOIN wp_woocommerce_order_itemmeta m ON m.order_item_id=oi.order_item_id AND m.meta_key='cost' WHERE oi.order_id=o.ID AND oi.order_item_type='shipping' LIMIT 1)cost
     167          ,(SELECT GROUP_CONCAT(DISTINCT CONCAT(UCASE(SUBSTRING(m.meta_key,1,1)),SUBSTRING(m.meta_key,2),': ',m.meta_value) SEPARATOR '&#10;') FROM wp_wc_order_product_lookup pl JOIN wp_woocommerce_order_itemmeta m ON m.order_item_id=pl.order_item_id WHERE pl.order_id=o.ID AND pl.variation_id=COALESCE(NULLIF(op.variation_id,0),ip.variation_id,0) AND m.meta_key NOT LIKE '\_%' AND m.meta_value IS NOT NULL)meta
    158168          ,(SELECT meta_value FROM wp_postmeta WHERE meta_key='delivery_est' AND post_id=o.ID LIMIT 1)delivery_est
    159169          FROM wp_posts o
     
    234244        <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=2.0">
    235245        <meta name='robots' content='noindex,nofollow'>
    236         <meta http-equiv='refresh' content='120;url=?page=pb-queue'>
     246        <?php $last_change=(int)get_option('pb_refresh',0); ?>
     247        <script>pb_last_change=<?php echo $last_change;?>;setInterval(()=>{fetch(ajaxurl+'?action=pb_latest_order').then(r=>r.text()).then(t=>{if(+t!=pb_last_change)location.reload()})},300000);</script>
    237248        <script type='text/javascript'>
    238249          function pb_qicon(msg=0) {
  • pb-shipping/tags/5.0.19/pb_report.php

    r3194351 r3410294  
    167167        <td>$client_facility_name</td>
    168168        <td nowrap>$label_dt</td>
    169         <td nowrap onclick=\"sdate$order_id.style.display='block';sdate$order_id.focus();\">$ship_dt <input title='Press enter to save' type='search' id='sdate$order_id' onchange='ship_dt($order_id,this.value)'; required value='$ship_dt' style='display:none'></td>
     169        <td nowrap onclick=\"document.getElementById('sdate$order_id').style.display='block';sdate$order_id.focus();\">$ship_dt <input title='Press enter to save' type='search' id='sdate$order_id' onchange='ship_dt($order_id,this.value)'; required value='$ship_dt' style='display:none'></td>
    170170        <td onclick=\"window.open('".admin_url('admin.php?page=pb-ship&order_id=')."$order_id&override=1','Ship','width=780,height=1005,resizable=yes,scrollbars=yes');\"><span class='dashicons dashicons-external'></span> $order_id</td>
    171171        <td align='right'>{$oz}$weight_unit<br>$$cost</td>
  • pb-shipping/tags/5.0.19/pb_ship.php

    r3194351 r3410294  
    302302        $cache_key="$carrier-$serviceid-$sopt-$parceltype-$adj_ins_value-$length-x-$width-x-$height-$weight-$services-$ins_value-$induction_zip-$city-$state-$zip-$rtn";
    303303        $label=espb_ship($order_id,$cache_key,$shipment,$client_facility_id,$env,$carrier,$services,$pending,$rtn);
     304        if($submit_type==1&&$label&&!stripos($label,'error code'))update_option('pb_refresh',time());
    304305      }
    305306    }
  • pb-shipping/tags/5.0.19/readme.txt

    r3360685 r3410294  
    55License URI: http://www.gnu.org/licenses/gpl-3.0.html
    66Requires at least: 4.6
    7 Tested up to: 6.8
    8 Stable tag: 5.0.18
     7Tested up to: 6.9
     8Stable tag: 5.0.19
    99
    1010A streamlined US shipping solution for WooCommerce and Pitney Bowes.
     
    3737
    3838== Changelog ==
     39= 5.0.19 = * Compatibility with WC 10.3. Variation improvements to queue and packing slip.
    3940= 5.0.18 = * Compatibility with WC 10.1.
    4041= 5.0.17 = * Updates to allow 4 digit ins values.
Note: See TracChangeset for help on using the changeset viewer.