PluginProbe ʕ •ᴥ•ʔ
Weight Based Shipping Table Rate for WooCommerce – Flexible Shipping / 6.10.0
Weight Based Shipping Table Rate for WooCommerce – Flexible Shipping v6.10.0
6.12.1 6.12.0 6.11.0 6.10.0 6.9.1 6.9.0 6.8.1 6.8.0 6.7.4 6.7.3 6.7.2 6.7.0 4.21.7 4.22.0 4.22.1 4.23.0 4.23.1 4.23.2 4.23.3 4.24.0 4.24.1 4.24.10 4.24.11 4.24.12 4.24.13 4.24.14 4.24.15 4.24.16 4.24.17 4.24.18 4.24.19 4.24.2 4.24.4 4.24.6 4.24.7 4.24.8 4.24.9 4.25.0 4.25.1 4.25.2 4.25.4 4.25.5 4.25.6 4.25.7 4.25.8 4.3.0 4.3.1 4.4.0 4.4.1 4.5.0 4.5.1 4.6.0 4.6.1 4.7.0 4.7.1 4.7.2 4.8.0 4.8.1 4.8.3 4.8.4 4.8.5 4.9.0 5.0.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.0.9 5.1.0 5.1.1 5.1.2 5.1.3 5.2.0 5.3.0 5.3.1 5.3.3 5.3.4 5.3.5 6.0.0 6.1.0 6.1.1 6.1.2 6.2.0 6.2.1 6.2.2 6.2.3 6.2.4 6.3.0 trunk 6.4.0 1.4 6.4.1 1.4.1 6.4.2 1.5 6.4.3 1.6 6.4.5 1.6.1 6.5.0 1.6.2 6.5.1 1.7 6.5.2 1.8 6.5.3 1.9 6.5.4 1.9.1 6.5.5 1.9.10 6.5.6 1.9.11 6.5.7 1.9.12 6.5.8 1.9.2 6.6.0 1.9.3 6.6.1 1.9.4 6.6.2 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0 2.0.1 2.1 2.1.1 2.1.10 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 3.0.6 3.0.7 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.10.0 3.11.0 3.11.1 3.11.2 3.11.3 3.11.4 3.12.0 3.13.0 3.14.0 3.14.1 3.14.2 3.14.3 3.14.4 3.15.0 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.2.0 3.3.1 3.3.10 3.3.11 3.3.12 3.3.13 3.3.14 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 3.3.9 3.4.0 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.7.0 3.8.0 3.9.0 3.9.1 3.9.10 3.9.11 3.9.12 3.9.13 3.9.15 3.9.16 3.9.17 3.9.18 3.9.19 3.9.2 3.9.20 3.9.21 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.9 4.0.0 4.0.1 4.0.10 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.0.9 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.11.0 4.11.1 4.11.2 4.11.3 4.11.4 4.11.5 4.11.6 4.11.7 4.11.8 4.11.9 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.14.0 4.14.1 4.14.2 4.15.0 4.16.0 4.16.1 4.16.2 4.17.0 4.18.0 4.18.1 4.18.2 4.18.3 4.18.4 4.18.5 4.18.6 4.19.0 4.19.1 4.2.0 4.20.0 4.20.1 4.20.2 4.20.3 4.21.0 4.21.1 4.21.2 4.21.3 4.21.4 4.21.5
flexible-shipping / src / WPDesk / FS / Shipment / SubscriptionsIntegration.php
flexible-shipping / src / WPDesk / FS / Shipment Last commit date
BulkAction 1 month ago views 1 month ago AdminNotices.php 1 month ago BulkAction.php 1 month ago DispatchLabelFile.php 1 month ago FilterOrders.php 1 month ago ModifyOrderTable.php 1 month ago ModifyStatuses.php 1 month ago SubscriptionsIntegration.php 1 month ago
SubscriptionsIntegration.php
99 lines
1 <?php
2 /**
3 * Class SubscriptionsIntegration
4 *
5 * @package WPDesk\FS\Shipment
6 */
7
8 namespace WPDesk\FS\Shipment;
9
10 use FSVendor\WPDesk\FS\Shipment\CustomPostType;
11 use FSVendor\WPDesk\PluginBuilder\Plugin\Hookable;
12
13 /**
14 * Integrates Shipments with WooCommerce Subscriptions plugin.
15 */
16 class SubscriptionsIntegration implements Hookable {
17
18 /**
19 * @var CustomPostType
20 */
21 private $shipment_cpt;
22
23 /**
24 * SubscriptionsIntegration constructor.
25 *
26 * @param CustomPostType $shipment_cpt .
27 */
28 public function __construct( CustomPostType $shipment_cpt ) {
29 $this->shipment_cpt = $shipment_cpt;
30 }
31
32 /**
33 * .
34 */
35 public function hooks() {
36 $last_priority = PHP_INT_MAX;
37 add_action( 'woocommerce_checkout_subscription_created', [ $this, 'create_shipping_for_subscription' ], $last_priority, 3 );
38 add_filter( 'wcs_renewal_order_created', [ $this, 'create_shipping_for_order_from_subscription' ], 10, 2 );
39 }
40
41 /**
42 * @param \WC_Subscription $subscription .
43 * @param \WC_Order $order .
44 * @param \WC_Cart $recurring_cart .
45 */
46 public function create_shipping_for_subscription( $subscription, $order, $recurring_cart ) {
47 $this->shipment_cpt->create_shipping_for_order_and_cart( $subscription, $recurring_cart );
48 }
49
50 /**
51 * @param \WC_Order $order .
52 * @param \WC_Subscription $subscription .
53 */
54 public function create_shipping_for_order_from_subscription( $order, $subscription ) {
55 $subscription_shipments = fs_get_order_shipments( $subscription->get_id() );
56 foreach ( $subscription_shipments as $shipment ) {
57 $this->create_single_shipment( $shipment, $order );
58 }
59
60 return $order;
61 }
62
63 /**
64 * @param \WPDesk_Flexible_Shipping_Shipment $shipment .
65 * @param \WC_Order $order .
66 */
67 private function create_single_shipment( \WPDesk_Flexible_Shipping_Shipment $shipment, \WC_Order $order ) {
68 $meta_data = $shipment->get_meta_data();
69 $fs_method = $shipment->get_meta( '_fs_method', [ 'method_integration' => $shipment->get_integration() ] );
70 $order_shipment = fs_create_shipment( $order, $fs_method );
71 $integration = $order_shipment->get_integration();
72 $this->setup_shipment_meta_data( $meta_data, $integration, $shipment, $order_shipment );
73 $order_shipment->save();
74
75 /**
76 * New shipment created from subscription.
77 *
78 * @param \WPDesk_Flexible_Shipping_Shipment $order_shipment Created shipment.
79 */
80 do_action( 'flexible-shipping/shipment-from-subscription/created/' . $integration, $order_shipment );
81 }
82
83 /**
84 * @param array $meta_data .
85 * @param string $integration .
86 * @param \WPDesk_Flexible_Shipping_Shipment $shipment .
87 * @param \WPDesk_Flexible_Shipping_Shipment $order_shipment .
88 */
89 private function setup_shipment_meta_data( array $meta_data, $integration, \WPDesk_Flexible_Shipping_Shipment $shipment, \WPDesk_Flexible_Shipping_Shipment $order_shipment ) {
90 foreach ( $meta_data as $meta_key => $meta_value ) {
91 $order_shipment_meta_value =
92 apply_filters( 'flexible-shipping/shipment-from-subscription/meta-value/' . $integration, $shipment->get_meta( $meta_key ), $meta_key, $order_shipment );
93 $order_shipment->set_meta( $meta_key, $order_shipment_meta_value );
94 }
95 }
96
97
98 }
99