PluginProbe ʕ •ᴥ•ʔ
Weight Based Shipping Table Rate for WooCommerce – Flexible Shipping / 6.11.0
Weight Based Shipping Table Rate for WooCommerce – Flexible Shipping v6.11.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 2 weeks ago views 2 weeks ago AdminNotices.php 2 weeks ago BulkAction.php 2 weeks ago DispatchLabelFile.php 2 weeks ago FilterOrders.php 2 weeks ago ModifyOrderTable.php 2 weeks ago ModifyStatuses.php 2 weeks ago SubscriptionsIntegration.php 2 weeks 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