PluginProbe
PostNL for WooCommerce / 4.4.1
PostNL for WooCommerce v4.4.1
5.9.12 5.9.11 5.9.10 5.9.9 5.9.8 5.9.7 5.9.6 trunk 2.5.0 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 3.1.4 3.1.5 3.1.6 3.1.7 4.0.0 4.0.1 4.0.2 4.3.2 4.3.3 4.4.0 4.4.1 All 72 releases
woo-postnl / includes / compatibility / class-wcpdf-compatibility.php

class-wcpdf-compatibility.php in PostNL for WooCommerce 4.4.1, at includes/compatibility/class-wcpdf-compatibility.php

73 lines 2.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace WPO\WC\PostNL\Compatibility;
4
5 use Exception;
6 use WCPN_Frontend;
7 use WPO\WC\PostNL\Compatibility\Order as WCX_Order;
8
9 /**
10 * Class for compatibility with the WooCommerce PDF Invoices & Packing Slips Premium Templates plugin.
11 *
12 * @package WPO\WC\PostNL\Compatibility
13 */
14 class WCPN_WCPDF_Compatibility
15 {
16 public static function add_filters()
17 {
18 // WooCommerce PDF Invoices & Packing Slips Premium Templates compatibility
19 add_filter("wpo_wcpdf_templates_replace_postnl_tracktrace", [__CLASS__, "track_trace"], 10, 2);
20 add_filter("wpo_wcpdf_templates_replace_postnl_track_trace", [__CLASS__, "track_trace"], 10, 2);
21
22 add_filter("wpo_wcpdf_templates_replace_postnl_tracktrace_link", [__CLASS__, "track_trace_link"], 10, 2);
23 add_filter("wpo_wcpdf_templates_replace_postnl_track_trace_link", [__CLASS__, "track_trace_link"], 10, 2);
24 }
25
26 /**
27 * @param $replacement
28 * @param $order
29 *
30 * @return string
31 * @throws Exception
32 */
33 public function track_trace($replacement, $order): string
34 {
35 $shipments = WCPN_Frontend::getTrackTraceShipments(WCX_Order::get_id($order));
36
37 $track_trace = [];
38
39 foreach ($shipments as $shipment) {
40 if (! empty($shipment['track_trace'])) {
41 $track_trace[] = $shipment['track_trace'];
42 }
43 }
44
45 return implode(', ', $track_trace);
46 }
47
48 /**
49 * @param $replacement
50 * @param $order
51 *
52 * @return string
53 * @throws Exception
54 */
55 public function track_trace_link($replacement, $order): string
56 {
57 $track_trace_links = WCPN_Frontend::getTrackTraceLinks(WCX_Order::get_id($order));
58
59 $track_trace_links = array_map(
60 function ($link) {
61 return $link["link"];
62 },
63 $track_trace_links
64 );
65
66 if (! empty($track_trace_links)) {
67 $replacement = implode(', ', $track_trace_links);
68 }
69
70 return $replacement;
71 }
72 }
73