PluginProbe ʕ •ᴥ•ʔ
PiWeb Delivery & Pickup Date Time for WooCommerce / 3.0.49.23
PiWeb Delivery & Pickup Date Time for WooCommerce v3.0.49.23
3.0.63 3.0.62 3.0.61 3.0.60 3.0.49.49 3.0.49.6 3.0.49.60 3.0.49.61 3.0.49.62 3.0.49.63 3.0.49.64 3.0.49.66 3.0.49.67 3.0.49.69 3.0.49.7 3.0.49.70 3.0.49.72 3.0.49.73 3.0.49.74 3.0.49.76 3.0.49.77 3.0.49.79 3.0.49.9 3.0.49.90 3.0.49.91 3.0.49.92 3.0.49.93 3.0.49.94 3.0.49.96 3.0.49.97 3.0.49.99 trunk 1.0 1.1 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 2.9.17 3.0.47 3.0.49 3.0.49.1 3.0.49.10 3.0.49.11 3.0.49.12 3.0.49.13 3.0.49.16 3.0.49.17 3.0.49.19 3.0.49.2 3.0.49.20 3.0.49.21 3.0.49.22 3.0.49.23 3.0.49.24 3.0.49.26 3.0.49.27 3.0.49.29 3.0.49.3 3.0.49.30 3.0.49.31 3.0.49.32 3.0.49.33 3.0.49.34 3.0.49.36 3.0.49.37 3.0.49.39 3.0.49.4 3.0.49.40 3.0.49.41 3.0.49.42 3.0.49.43 3.0.49.44 3.0.49.46 3.0.49.47
pi-woocommerce-order-date-time-and-type / block / class-date-time-location-storage.php
pi-woocommerce-order-date-time-and-type / block Last commit date
date-time-location 1 year ago class-date-time-location-block-integration.php 1 year ago class-date-time-location-block.php 1 year ago class-date-time-location-storage.php 1 year ago
class-date-time-location-storage.php
63 lines
1 <?php
2 namespace PISOL\DTT\BLOCK;
3
4 class DateTimeLocationStorage{
5
6 protected static $instance = null;
7
8 public static function get_instance( ) {
9 if ( is_null( self::$instance ) ) {
10 self::$instance = new self();
11 }
12 return self::$instance;
13 }
14
15 function __construct()
16 {
17 add_action( 'woocommerce_store_api_checkout_update_order_from_request', array( $this, 'update_block_order_meta' ), 10, 2 );
18 }
19
20
21
22 function update_block_order_meta($order, $request){
23 //error_log(print_r($request['body'],true));
24 $extensions = $request->get_param( 'extensions' );
25 $params = $extensions['pisol-dtt/date-time-location'] ?? array();
26
27 if(empty($params['pi_delivery_type'])){
28 $params['pi_delivery_type'] = 'non-deliverable';
29 }
30
31 if(isset($params['pickup_location_id'])){
32 $params['pickup_location'] = $params['pickup_location_id'];
33 }
34
35 if ( empty( $params ) ) {
36 return;
37 }
38
39 $errors = new \WP_Error();
40
41 // Perform validation checks and add errors to $errors object
42 \pi_dtt_validate::validateCheckout($params, $errors);
43
44 // Check if there are any errors in the $errors object
45 if ($errors->has_errors()) {
46 // Extract all error messages from WP_Error
47 $error_messages = $errors->get_error_messages();
48
49 // Option 1: Throw an exception for each error individually (not typically ideal)
50 $combined_error_message = implode("<br>", $error_messages);
51 throw new \WC_Data_Exception('invalid_checkout_data', $combined_error_message);
52 }
53
54 $order_id = $order->get_id();
55
56 \pi_dtt_order::storeDetailInOrder($order_id, $params);
57
58 $order->save();
59 }
60
61 }
62
63 DateTimeLocationStorage::get_instance();