Changeset 3222736
- Timestamp:
- 01/15/2025 09:50:20 AM (15 months ago)
- Location:
- api2cart-bridge-connector/trunk
- Files:
-
- 3 edited
-
api2cart-bridge-connector.php (modified) (1 diff)
-
bridge2cart/bridge.php (modified) (2 diffs)
-
readme.txt (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
api2cart-bridge-connector/trunk/api2cart-bridge-connector.php
r3197357 r3222736 5 5 Author: API2Cart 6 6 Author URI: https://api2cart.com/ 7 Version: 3.0. 37 Version: 3.0.4 8 8 */ 9 9 -
api2cart-bridge-connector/trunk/bridge2cart/bridge.php
r3197357 r3222736 1134 1134 1135 1135 return true; 1136 } 1137 1138 /** 1139 * TriggerEvents Batch 1140 * 1141 * @inheritDoc 1142 * @return array 1143 */ 1144 public function triggerEventsBatch( array $a2cData ) { 1145 $response = array( 1146 'error_code' => self::ERROR_CODE_SUCCESS, 1147 'error' => null, 1148 'result' => [], 1149 ); 1150 1151 $reportError = function ( $e ) { 1152 return [ 1153 'message' => $e->getMessage(), 1154 'error_code' => $e->getCode(), 1155 ]; 1156 }; 1157 1158 if ( function_exists( 'switch_to_blog' ) ) { 1159 switch_to_blog( $a2cData['store_id'] ); 1160 } 1161 1162 foreach ( $a2cData['data'] as $key => $item ) { 1163 $response['result'][$key]['id'] = null; 1164 1165 try { 1166 foreach ( $item['events'] as $event ) { 1167 if ( 'update' === $event['event'] ) { 1168 switch ( $event['entity_type'] ) { 1169 case 'product': 1170 $product = WC()->product_factory->get_product( $event['entity_id'] ); 1171 if ( in_array( 'stock_status', $event['updated_meta'], true ) ) { 1172 do_action( 'woocommerce_product_set_stock_status', $product->get_id(), $product->get_stock_status(), $product ); 1173 } 1174 1175 if ( in_array( 'stock_quantity', $event['updated_meta'], true ) ) { 1176 do_action( 'woocommerce_product_set_stock', $product ); 1177 } 1178 1179 do_action( 'woocommerce_product_object_updated_props', $product, $event['updated_meta'] ); 1180 break; 1181 case 'variant': 1182 $product = WC()->product_factory->get_product( $event['entity_id'] ); 1183 if ( in_array( 'stock_status', $event['updated_meta'], true ) ) { 1184 do_action( 'woocommerce_variation_set_stock_status', $event['entity_id'], $product->get_stock_status(), $product ); 1185 } 1186 1187 if ( in_array( 'stock_quantity', $event['updated_meta'], true ) ) { 1188 do_action( 'woocommerce_variation_set_stock', $product ); 1189 } 1190 1191 do_action( 'woocommerce_product_object_updated_props', $product, $event['updated_meta'] ); 1192 break; 1193 case 'order': 1194 $entity = WC()->order_factory->get_order( $event['entity_id'] ); 1195 1196 do_action( 'woocommerce_order_status_' . $event['status']['to'], $entity->get_id(), $entity ); 1197 1198 if ( isset( $event['status']['from'] ) ) { 1199 do_action( 'woocommerce_order_status_' . $event['status']['from'] . '_to_' . $event['status']['to'], $entity->get_id(), $entity ); 1200 do_action( 'woocommerce_order_status_changed', $entity->get_id(), $event['status']['from'], $event['status']['to'], $entity ); 1201 } 1202 1203 break; 1204 case 'shipment': 1205 $entity = WC()->order_factory->get_order( $event['entity_id'] ); 1206 $data = unserialize( $item['metaData'], [ 'allowed_classes' => [ 'stdClass' ] ] ); 1207 $action = 'add'; 1208 1209 if ( isset( $event['action'] ) ) { 1210 $action = $event['action']; 1211 } 1212 1213 $existingData = $entity->get_meta( '_wc_shipment_tracking_items' ); 1214 1215 if ( empty( $data ) ) { 1216 $entity->delete_meta_data( '_wc_shipment_tracking_items' ); 1217 } else { 1218 if ( $action === 'update' ) { 1219 $newData = $data; 1220 } else { 1221 if ( !empty( $existingData ) && is_array( $existingData ) ) { 1222 $existingData[] = $data[0]; 1223 $newData = $existingData; 1224 } else { 1225 $newData = $data; 1226 } 1227 } 1228 1229 $entity->update_meta_data( '_wc_shipment_tracking_items', $newData ); 1230 1231 if ( $action === 'add' ) { 1232 $trackingProvider = ''; 1233 $trackingNumber = ''; 1234 1235 if ( !empty( $data[0]['tracking_provider'] ) ) { 1236 $trackingProvider = $data[0]['tracking_provider']; 1237 } elseif ( !empty( $data[0]['custom_tracking_provider'] ) ) { 1238 $trackingProvider = $data[0]['custom_tracking_provider']; 1239 } 1240 1241 if ( isset( $data[0]['tracking_number'] ) ) { 1242 $trackingNumber = $data[0]['tracking_number']; 1243 } 1244 1245 if ( $trackingProvider && $trackingNumber ) { 1246 /* translators: %1$s: replace with Shipping Provider %2$s: replace with tracking number */ 1247 $note = sprintf( 1248 __( 'Order was shipped with %1$s and tracking number is: %2$s', 'bridge-connector-wdr' ), 1249 $trackingProvider, 1250 $trackingNumber 1251 ); 1252 1253 $entity->add_order_note( $note ); 1254 } 1255 } 1256 } 1257 1258 $entity->save_meta_data(); 1259 do_action( 'update_order_status_after_adding_tracking', $event['status'], $entity ); 1260 } 1261 } elseif ( 'delete' === $event['event'] ) { 1262 switch ( $event['entity_type'] ) { 1263 case 'shipment': 1264 $entity = WC()->order_factory->get_order( $event['entity_id'] ); 1265 1266 foreach ( $event['tracking_info'] as $trackingInfo ) { 1267 $trackingProvider = $trackingInfo['tracking_provider']; 1268 $trackingNumber = $trackingInfo['tracking_number']; 1269 1270 // translators: %1$s is the tracking provider, %2$s is the tracking number 1271 $note = sprintf( 1272 esc_html__( 'Tracking info was deleted for tracking provider %1$s with tracking number %2$s', 'bridge-connector-wdr' ), 1273 $trackingProvider, 1274 $trackingNumber 1275 ); 1276 // Add the note 1277 $entity->add_order_note( $note ); 1278 } 1279 } 1280 } 1281 } 1282 } catch ( Exception $e ) { 1283 $response['result'][$key]['errors'][] = $reportError( $e ); 1284 } catch ( Throwable $e ) { 1285 $response['result'][$key]['errors'][] = $reportError( $e ); 1286 } 1287 } 1288 1289 return $response; 1136 1290 } 1137 1291 … … 4880 5034 if ( ! defined( 'ABSPATH' ) ) exit; 4881 5035 4882 define( 'A2CBC_BRIDGE_VERSION', '1 68' );5036 define( 'A2CBC_BRIDGE_VERSION', '170' ); 4883 5037 define( 'A2CBC_BRIDGE_CHECK_REQUEST_KEY_LINK', 'http://app.api2cart.com/request/key/check' ); 4884 5038 define( 'A2CBC_BRIDGE_DIRECTORY_NAME', basename( getcwd() ) ); -
api2cart-bridge-connector/trunk/readme.txt
r3197357 r3222736 91 91 = 3.0.2 =* Added support for the "Discount Rules for WooCommerce" plugin. 92 92 = 3.0.3 =* Updated bridge to 168 version. 93 = 3.0.4 =* Updated bridge to 170 version.
Note: See TracChangeset
for help on using the changeset viewer.