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 / BulkAction / HandleActionManifest.php
flexible-shipping / src / WPDesk / FS / Shipment / BulkAction Last commit date
HandleAction.php 1 week ago HandleActionLabels.php 1 week ago HandleActionManifest.php 1 week ago HandleActionSend.php 1 week ago HandleActionStrategy.php 1 week ago HandleActionStrategyInterface.php 1 week ago
HandleActionManifest.php
113 lines
1 <?php
2 /**
3 * Class HandleActionManifest
4 */
5
6 namespace WPDesk\FS\Shipment\BulkAction;
7
8 use Exception;
9 use FSVendor\WPDesk\Session\SessionFactory;
10 use WPDesk_Flexible_Shipping_Shipment;
11 use WPDesk_Flexible_Shipping_Shipment_Interface;
12
13 /**
14 * .
15 */
16 class HandleActionManifest implements HandleActionStrategyInterface {
17
18 /**
19 * @var SessionFactory
20 */
21 private $session_factory;
22
23 /**
24 * @param SessionFactory $session_factory .
25 */
26 public function __construct( SessionFactory $session_factory ) {
27 $this->session_factory = $session_factory;
28 }
29
30 /**
31 * @param string $redirect_to .
32 * @param array $post_ids .
33 *
34 * @return string
35 */
36 public function handle( string $redirect_to, array $post_ids ): string {
37 $manifests = [];
38 foreach ( $post_ids as $post_id ) {
39 $shipments = fs_get_order_shipments( $post_id );
40 foreach ( $shipments as $shipment ) {
41 /* @var $shipment WPDesk_Flexible_Shipping_Shipment|WPDesk_Flexible_Shipping_Shipment_Interface */
42 if ( $shipment->get_status() !== 'fs-confirmed' || $shipment->get_meta( '_manifest', '' ) !== '' ) {
43 continue;
44 }
45 try {
46 $integration = $shipment->get_integration();
47 $manifest_name = $integration;
48 if ( method_exists( $shipment, 'get_manifest_name' ) ) {
49 $manifest_name = $shipment->get_manifest_name();
50 }
51 $manifest = null;
52 if ( empty( $manifests[ $manifest_name ] ) ) {
53 if ( fs_manifest_integration_exists( $integration ) ) {
54 $manifest = fs_create_manifest( $integration );
55 }
56 } else {
57 $manifest = $manifests[ $manifest_name ];
58 }
59 if ( null !== $manifest ) {
60 $manifest->add_shipments( $shipment );
61 $manifest->save();
62 $shipment->update_status( 'fs-manifest' );
63 $shipment->save();
64 $manifests[ $manifest_name ] = $manifest;
65 }
66 } catch ( Exception $e ) { // phpcs:ignore
67 // Do nothing.
68 }
69 }
70 }
71 $messages = [];
72 $integrations = apply_filters( 'flexible_shipping_integration_options', [] );
73
74 foreach ( $manifests as $manifest ) {
75 try {
76 $manifest->generate();
77 $manifest->save();
78 $download_manifest_url = admin_url( 'edit.php?post_type=shipping_manifest&flexible_shipping_download_manifest=' . $manifest->get_id() . '&nonce=' . wp_create_nonce( 'flexible_shipping_download_manifest' ) );
79 $messages[] = [
80 'type' => 'updated',
81 'message' => sprintf(
82 // Translators: manifests count and integration.
83 __( 'Created manifest: %s (%s). If download not start automatically click %shere%s.', 'flexible-shipping' ), // phpcs:ignore
84 $manifest->get_number(),
85 $integrations[ $manifest->get_integration() ],
86 '<a class="shipping_manifest_download" target="_blank" href="' . $download_manifest_url . '">',
87 '</a>'
88 ),
89 ];
90 } catch ( Exception $e ) {
91 $messages[] = [
92 'type' => 'error',
93 'message' => sprintf(
94 __( 'Manifest creation error: %s (%s).', 'flexible-shipping' ), // phpcs:ignore
95 $e->getMessage(),
96 $integrations[ $manifest->get_integration() ]
97 ),
98 ];
99 fs_delete_manifest( $manifest );
100 }
101 }
102 if ( count( $messages ) === 0 ) {
103 $messages[] = [
104 'type' => 'updated',
105 'message' => __( 'No manifests created.', 'flexible-shipping' ),
106 ];
107 }
108 $this->session_factory->get_woocommerce_session_adapter()->set( 'flexible_shipping_bulk_manifests', $messages );
109
110 return add_query_arg( 'bulk_flexible_shipping_manifests', count( $post_ids ), $redirect_to );
111 }
112 }
113