Changeset 3046841
- Timestamp:
- 03/07/2024 09:51:35 AM (2 years ago)
- Location:
- shopping-feed
- Files:
-
- 20 edited
- 1 copied
-
tags/6.5.0 (copied) (copied from shopping-feed/trunk)
-
tags/6.5.0/readme.txt (modified) (2 diffs)
-
tags/6.5.0/shoppingfeed.php (modified) (3 diffs)
-
tags/6.5.0/src/Addons/Plugins/PhWoocommerceShipmentTrackingProPlugin/PhWoocommerceShipmentTrackingProPlugin.php (modified) (1 diff)
-
tags/6.5.0/src/Admin/Metabox.php (modified) (5 diffs)
-
tags/6.5.0/src/Orders/Order.php (modified) (3 diffs)
-
tags/6.5.0/src/Orders/Orders.php (modified) (4 diffs)
-
tags/6.5.0/vendor/autoload.php (modified) (1 diff)
-
tags/6.5.0/vendor/composer/autoload_real.php (modified) (5 diffs)
-
tags/6.5.0/vendor/composer/autoload_static.php (modified) (2 diffs)
-
tags/6.5.0/vendor/composer/installed.php (modified) (2 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/shoppingfeed.php (modified) (3 diffs)
-
trunk/src/Addons/Plugins/PhWoocommerceShipmentTrackingProPlugin/PhWoocommerceShipmentTrackingProPlugin.php (modified) (1 diff)
-
trunk/src/Admin/Metabox.php (modified) (5 diffs)
-
trunk/src/Orders/Order.php (modified) (3 diffs)
-
trunk/src/Orders/Orders.php (modified) (4 diffs)
-
trunk/vendor/autoload.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_real.php (modified) (5 diffs)
-
trunk/vendor/composer/autoload_static.php (modified) (2 diffs)
-
trunk/vendor/composer/installed.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
shopping-feed/tags/6.5.0/readme.txt
r3032069 r3046841 2 2 Contributors: ShoppingFeed, BeAPI 3 3 Tags: shoppingfeed, marketplace, woocommerce, woocommerce shoppingfeed, create woocommerce products shoppingfeed, products feed, generate shoppingfeed, amazon, Jet, Walmart, many marketplace, import orders 4 Stable tag: 6. 4.05 Version: 6. 4.04 Stable tag: 6.5.0 5 Version: 6.5.0 6 6 Requires PHP: 7.3 7 7 Requires at least: 5.7 … … 14 14 15 15 == Changelog == 16 * 6.5.0 17 * Misc : HPOS compatibility. 18 * Orders : Update the filters used for retrieving orders from ShoppingFeed. 19 * Orders : Rework the checks when importing orders from ShoppingFeed. 16 20 * 6.4.0 17 21 * Misc : Prefix Guzzle library and related dependencies to avoid conflicts. -
shopping-feed/tags/6.5.0/shoppingfeed.php
r3032069 r3046841 8 8 * Text Domain: shopping-feed 9 9 * Domain Path: /languages 10 * Version: 6. 4.010 * Version: 6.5.0 11 11 * Requires at least: 5.7 12 12 * Requires PHP: 7.3 … … 27 27 } 28 28 29 define( 'SF_VERSION', '6. 4.0' );29 define( 'SF_VERSION', '6.5.0' ); 30 30 define( 'SF_DB_VERSION_SLUG', 'SF_DB_VERSION' ); 31 31 define( 'SF_DB_VERSION', '1.0.0' ); … … 58 58 59 59 \add_action( 'plugins_loaded', __NAMESPACE__ . '\\init', 100 ); 60 61 // Declare the plugin compatibility with High Performance Order Storage 62 \add_action( 63 'before_woocommerce_init', 64 function() { 65 if ( class_exists( \Automattic\WooCommerce\Utilities\FeaturesUtil::class ) ) { 66 \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', __FILE__, true ); 67 } 68 } 69 ); -
shopping-feed/tags/6.5.0/src/Addons/Plugins/PhWoocommerceShipmentTrackingProPlugin/PhWoocommerceShipmentTrackingProPlugin.php
r2748452 r3046841 82 82 * @return array 83 83 */ 84 private function get_tracking_data( $wc_order ) {85 $tracking_data = get_post_meta( $wc_order->get_id(),'wf_wc_shipment_result', true );84 private function get_tracking_data( \WC_Order $wc_order ) { 85 $tracking_data = $wc_order->get_meta( 'wf_wc_shipment_result', true ); 86 86 if ( ! is_array( $tracking_data ) || ! isset( $tracking_data['tracking_info'] ) ) { 87 87 return array(); -
shopping-feed/tags/6.5.0/src/Admin/Metabox.php
r2670662 r3046841 8 8 use ShoppingFeed\ShoppingFeedWC\Orders\Order; 9 9 use ShoppingFeed\ShoppingFeedWC\Query\Query; 10 use WP_Post;11 10 12 11 /** … … 24 23 25 24 /** 26 * Register a custom metabox to display metadata for the current order.25 * Register a custom metabox to display ShoppingFeed metadata for the current order. 27 26 * 28 * This metabox is only register if the current order has been crea yed by ShoppingFeed.27 * This metabox is only register if the current order has been created by ShoppingFeed. 29 28 */ 30 29 public function register_sf_metabox() { 31 global $post; 30 global $theorder, $post; 31 32 32 $screen = get_current_screen(); 33 if ( is_null( $screen )|| 'shop_order' !== $screen->post_type ) {33 if ( null === $screen || 'shop_order' !== $screen->post_type ) { 34 34 return; 35 35 } 36 36 37 $order = wc_get_order( $post ); 38 if ( false === $order ) { 39 return; 37 $order = false; 38 if ( $theorder instanceof \WC_Order ) { 39 $order = $theorder; 40 } elseif ( $post ) { 41 $order = wc_get_order( $post->ID ); 40 42 } 41 43 42 if ( ! Order::is_sf_order( $order ) ) {44 if ( ! $order || ! Order::is_sf_order( $order ) ) { 43 45 return; 44 46 } … … 48 50 __( 'ShoppingFeed details', 'shopping-feed' ), 49 51 array( $this, 'render' ), 50 'shop_order',52 $screen, 51 53 'side' 52 54 ); … … 56 58 * Render the metabox content. 57 59 * 58 * @param WP_Post $post 60 * @param \WP_Post|\WC_Order $post_or_order_object 61 * 62 * @author Stéphane Gillot 59 63 */ 60 public function render( $post ) {61 $order = wc_get_order( $post );64 public function render( $post_or_order_object ) { 65 $order = ( $post_or_order_object instanceof \WP_Post ) ? wc_get_order( $post_or_order_object->ID ) : $post_or_order_object; 62 66 if ( false === $order ) { 63 67 return; … … 77 81 <span><?php esc_html_e( 'MarketPlace', 'shopping-feed' ); ?>:</span> <?php echo esc_html( $channel_name ); ?> 78 82 </li> 79 <?php80 do_action( 'sf_show_metas', $order );81 ?>83 <?php 84 do_action( 'sf_show_metas', $order ); 85 ?> 82 86 </ul> 83 87 <?php -
shopping-feed/tags/6.5.0/src/Orders/Order.php
r3032069 r3046841 6 6 defined( 'ABSPATH' ) || exit; 7 7 8 use Automattic\WooCommerce\Utilities\OrderUtil; 8 9 use ShoppingFeed\ShoppingFeedWC\Addons\Marketplace; 9 10 use ShoppingFeed\ShoppingFeedWC\Dependencies\ShoppingFeed\Sdk\Api\Order\OrderResource; … … 86 87 87 88 //Addresses 88 $wc_order->set_ address( $this->shipping_address, 'shipping');89 $wc_order->set_ address( $this->billing_address );89 $wc_order->set_shipping_address( $this->shipping_address ); 90 $wc_order->set_billing_address( $this->billing_address ); 90 91 91 92 //Note … … 237 238 */ 238 239 public static function exists( $sf_order ) { 239 return ! empty( wc_get_orders( array( Query::WC_META_SF_REFERENCE => $sf_order->getReference() ) ) ); 240 $args = [ Query::WC_META_SF_REFERENCE => $sf_order->getReference() ]; 241 if ( class_exists( OrderUtil::class ) && OrderUtil::custom_orders_table_usage_is_enabled() ) { 242 $args = [ 243 'meta_query' => [ 244 [ 245 'key' => Query::WC_META_SF_REFERENCE, 246 'value' => $sf_order->getReference(), 247 ], 248 ], 249 ]; 250 } 251 252 return ! empty( wc_get_orders( $args ) ); 240 253 } 241 254 -
shopping-feed/tags/6.5.0/src/Orders/Orders.php
r3032069 r3046841 71 71 } 72 72 73 $order_api = $shop->getOrderApi(); 74 $filters = array(); 75 $filters['acknowledgment'] = 'unacknowledged'; 73 $order_api = $shop->getOrderApi(); 74 $filters = array( 75 'acknowledgment' => 'unacknowledged', 76 'status' => ShoppingFeedHelper::sf_order_statuses_to_import(), 77 'since' => gmdate( 'c', strtotime( '14 days ago' ) ), 78 ); 76 79 77 $filters['status'] = ShoppingFeedHelper::sf_order_statuses_to_import(); 80 $orders_options = ShoppingFeedHelper::get_sf_orders_options(); 81 $include_fulfilled_by_channel = (bool) ( $orders_options['import_order_fulfilled_by_marketplace'] ?? false ); 78 82 79 83 foreach ( $order_api->getAll( $filters ) as $sf_order ) { … … 82 86 sprintf( 83 87 /* translators: 1: Order reference. 2: Order id. */ 84 __( 'Order already imported %1$ 1s (%2$2s)', 'shopping-feed' ),88 __( 'Order already imported %1$s (%2$s)', 'shopping-feed' ), 85 89 $sf_order->getReference(), 86 90 $sf_order->getId() … … 93 97 } 94 98 95 if ( ! $this->can_import_order( $sf_order ) ) { 99 $import_order_check = $this->can_import_order( $sf_order, $include_fulfilled_by_channel ); 100 if ( is_wp_error( $import_order_check ) ) { 101 /** @psalm-suppress PossiblyInvalidMethodCall */ 96 102 ShoppingFeedHelper::get_logger()->notice( 97 103 sprintf( 98 /* translators: 1: Order reference . 2: Order id. */99 __( 'Order fulfilled by channel %1$1s (%2$2s)', 'shopping-feed' ),104 /* translators: 1: Order reference, 2: Order id, 3: error message. */ 105 __( 'Order %1$s (%2$s) can\'t be imported : %3$s', 'shopping-feed' ), 100 106 $sf_order->getReference(), 101 $sf_order->getId() 107 $sf_order->getId(), 108 $import_order_check->get_error_message() 102 109 ), 103 110 array( … … 121 128 * 122 129 * @param OrderResource $sf_order 130 * @param bool $import_orders_fufilled_by_channel 123 131 * 124 * @return bool 132 * @return bool|\WP_Error true if the order can be imported or WP_Error with 133 * the reason the order can't be imported otherwise. 125 134 */ 126 public function can_import_order( $sf_order ) { 127 // Allow user for force imports for orders fulfilled by the marketplaces. 128 $orders_options = ShoppingFeedHelper::get_sf_orders_options(); 129 if ( isset( $orders_options['import_order_fulfilled_by_marketplace'] ) && true === (bool) $orders_options['import_order_fulfilled_by_marketplace'] ) { 135 public function can_import_order( $sf_order, $import_orders_fufilled_by_channel = false ) { 136 $sf_order_data = $sf_order->toArray(); 137 $status = $sf_order_data['status'] ?? ''; 138 $anonymized = (bool) ( $sf_order_data['anonymized'] ?? false ); 139 140 // Always skip anonymized orders. 141 if ( $anonymized ) { 142 return new \WP_Error( 143 'shoppingfeed_order_import_anonymized_order', 144 __( 'Order data has been anonymized.', 'shopping-feed' ) 145 ); 146 } 147 148 $fulfilled_by_marketplace = $this->is_fulfilled_by_marketplace( $sf_order ); 149 150 // If the order is fulfilled by the merchant 151 if ( ! $fulfilled_by_marketplace ) { 152 // Only import orders with the `waiting_shipment` status. 153 if ( 'waiting_shipment' !== $status ) { 154 return new \WP_Error( 155 'shoppingfeed_order_import_fulfilledby_store_incompatible_status', 156 sprintf( 157 /* translators: the order status */ 158 __( 'Order fulfilled by store with status "%s" will not be imported.', 'shopping-feed' ), 159 $status 160 ) 161 ); 162 } 163 130 164 return true; 131 165 } 132 166 133 return false === $this->is_fulfilled_by_marketplace( $sf_order ); 167 // Only imports orders fulfilled by channel if the flag is true. 168 if ( ! $import_orders_fufilled_by_channel ) { 169 return new \WP_Error( 170 'shoppingfeed_order_import_skip_fulfilledby_marketplace_orders', 171 __( 'Order if fulfilled by channel and will not be imported.', 'shopping-feed' ) 172 ); 173 } 174 175 return true; 134 176 } 135 177 } -
shopping-feed/tags/6.5.0/vendor/autoload.php
r3032069 r3046841 5 5 require_once __DIR__ . '/composer/autoload_real.php'; 6 6 7 return ComposerAutoloaderInit c2cdf4a183c6afa546d559f3114241e2::getLoader();7 return ComposerAutoloaderInit843d602e5ba88bb852407d6ae830daa3::getLoader(); -
shopping-feed/tags/6.5.0/vendor/composer/autoload_real.php
r3032069 r3046841 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit c2cdf4a183c6afa546d559f3114241e25 class ComposerAutoloaderInit843d602e5ba88bb852407d6ae830daa3 6 6 { 7 7 private static $loader; … … 25 25 require __DIR__ . '/platform_check.php'; 26 26 27 spl_autoload_register(array('ComposerAutoloaderInit c2cdf4a183c6afa546d559f3114241e2', 'loadClassLoader'), true, true);27 spl_autoload_register(array('ComposerAutoloaderInit843d602e5ba88bb852407d6ae830daa3', 'loadClassLoader'), true, true); 28 28 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); 29 spl_autoload_unregister(array('ComposerAutoloaderInit c2cdf4a183c6afa546d559f3114241e2', 'loadClassLoader'));29 spl_autoload_unregister(array('ComposerAutoloaderInit843d602e5ba88bb852407d6ae830daa3', 'loadClassLoader')); 30 30 31 31 $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); … … 33 33 require __DIR__ . '/autoload_static.php'; 34 34 35 call_user_func(\Composer\Autoload\ComposerStaticInit c2cdf4a183c6afa546d559f3114241e2::getInitializer($loader));35 call_user_func(\Composer\Autoload\ComposerStaticInit843d602e5ba88bb852407d6ae830daa3::getInitializer($loader)); 36 36 } else { 37 37 $map = require __DIR__ . '/autoload_namespaces.php'; … … 54 54 55 55 if ($useStaticLoader) { 56 $includeFiles = Composer\Autoload\ComposerStaticInit c2cdf4a183c6afa546d559f3114241e2::$files;56 $includeFiles = Composer\Autoload\ComposerStaticInit843d602e5ba88bb852407d6ae830daa3::$files; 57 57 } else { 58 58 $includeFiles = require __DIR__ . '/autoload_files.php'; 59 59 } 60 60 foreach ($includeFiles as $fileIdentifier => $file) { 61 composerRequire c2cdf4a183c6afa546d559f3114241e2($fileIdentifier, $file);61 composerRequire843d602e5ba88bb852407d6ae830daa3($fileIdentifier, $file); 62 62 } 63 63 … … 71 71 * @return void 72 72 */ 73 function composerRequire c2cdf4a183c6afa546d559f3114241e2($fileIdentifier, $file)73 function composerRequire843d602e5ba88bb852407d6ae830daa3($fileIdentifier, $file) 74 74 { 75 75 if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { -
shopping-feed/tags/6.5.0/vendor/composer/autoload_static.php
r3032069 r3046841 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit c2cdf4a183c6afa546d559f3114241e27 class ComposerStaticInit843d602e5ba88bb852407d6ae830daa3 8 8 { 9 9 public static $files = array ( … … 367 367 { 368 368 return \Closure::bind(function () use ($loader) { 369 $loader->prefixLengthsPsr4 = ComposerStaticInit c2cdf4a183c6afa546d559f3114241e2::$prefixLengthsPsr4;370 $loader->prefixDirsPsr4 = ComposerStaticInit c2cdf4a183c6afa546d559f3114241e2::$prefixDirsPsr4;371 $loader->classMap = ComposerStaticInit c2cdf4a183c6afa546d559f3114241e2::$classMap;369 $loader->prefixLengthsPsr4 = ComposerStaticInit843d602e5ba88bb852407d6ae830daa3::$prefixLengthsPsr4; 370 $loader->prefixDirsPsr4 = ComposerStaticInit843d602e5ba88bb852407d6ae830daa3::$prefixDirsPsr4; 371 $loader->classMap = ComposerStaticInit843d602e5ba88bb852407d6ae830daa3::$classMap; 372 372 373 373 }, null, ClassLoader::class); -
shopping-feed/tags/6.5.0/vendor/composer/installed.php
r3032069 r3046841 6 6 'install_path' => __DIR__ . '/../../', 7 7 'aliases' => array(), 8 'reference' => ' 9c6a94ac05210aeae8eb3b694d0b7ba05fc72fbb',8 'reference' => 'fdaa5f2e9131eeaa2fa2912dc9f8e9d489733690', 9 9 'name' => 'shoppingfeed/shoppingfeed-for-woocommerce', 10 10 'dev' => false, … … 35 35 'install_path' => __DIR__ . '/../../', 36 36 'aliases' => array(), 37 'reference' => ' 9c6a94ac05210aeae8eb3b694d0b7ba05fc72fbb',37 'reference' => 'fdaa5f2e9131eeaa2fa2912dc9f8e9d489733690', 38 38 'dev_requirement' => false, 39 39 ), -
shopping-feed/trunk/readme.txt
r3032069 r3046841 2 2 Contributors: ShoppingFeed, BeAPI 3 3 Tags: shoppingfeed, marketplace, woocommerce, woocommerce shoppingfeed, create woocommerce products shoppingfeed, products feed, generate shoppingfeed, amazon, Jet, Walmart, many marketplace, import orders 4 Stable tag: 6. 4.05 Version: 6. 4.04 Stable tag: 6.5.0 5 Version: 6.5.0 6 6 Requires PHP: 7.3 7 7 Requires at least: 5.7 … … 14 14 15 15 == Changelog == 16 * 6.5.0 17 * Misc : HPOS compatibility. 18 * Orders : Update the filters used for retrieving orders from ShoppingFeed. 19 * Orders : Rework the checks when importing orders from ShoppingFeed. 16 20 * 6.4.0 17 21 * Misc : Prefix Guzzle library and related dependencies to avoid conflicts. -
shopping-feed/trunk/shoppingfeed.php
r3032069 r3046841 8 8 * Text Domain: shopping-feed 9 9 * Domain Path: /languages 10 * Version: 6. 4.010 * Version: 6.5.0 11 11 * Requires at least: 5.7 12 12 * Requires PHP: 7.3 … … 27 27 } 28 28 29 define( 'SF_VERSION', '6. 4.0' );29 define( 'SF_VERSION', '6.5.0' ); 30 30 define( 'SF_DB_VERSION_SLUG', 'SF_DB_VERSION' ); 31 31 define( 'SF_DB_VERSION', '1.0.0' ); … … 58 58 59 59 \add_action( 'plugins_loaded', __NAMESPACE__ . '\\init', 100 ); 60 61 // Declare the plugin compatibility with High Performance Order Storage 62 \add_action( 63 'before_woocommerce_init', 64 function() { 65 if ( class_exists( \Automattic\WooCommerce\Utilities\FeaturesUtil::class ) ) { 66 \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', __FILE__, true ); 67 } 68 } 69 ); -
shopping-feed/trunk/src/Addons/Plugins/PhWoocommerceShipmentTrackingProPlugin/PhWoocommerceShipmentTrackingProPlugin.php
r2748452 r3046841 82 82 * @return array 83 83 */ 84 private function get_tracking_data( $wc_order ) {85 $tracking_data = get_post_meta( $wc_order->get_id(),'wf_wc_shipment_result', true );84 private function get_tracking_data( \WC_Order $wc_order ) { 85 $tracking_data = $wc_order->get_meta( 'wf_wc_shipment_result', true ); 86 86 if ( ! is_array( $tracking_data ) || ! isset( $tracking_data['tracking_info'] ) ) { 87 87 return array(); -
shopping-feed/trunk/src/Admin/Metabox.php
r2670662 r3046841 8 8 use ShoppingFeed\ShoppingFeedWC\Orders\Order; 9 9 use ShoppingFeed\ShoppingFeedWC\Query\Query; 10 use WP_Post;11 10 12 11 /** … … 24 23 25 24 /** 26 * Register a custom metabox to display metadata for the current order.25 * Register a custom metabox to display ShoppingFeed metadata for the current order. 27 26 * 28 * This metabox is only register if the current order has been crea yed by ShoppingFeed.27 * This metabox is only register if the current order has been created by ShoppingFeed. 29 28 */ 30 29 public function register_sf_metabox() { 31 global $post; 30 global $theorder, $post; 31 32 32 $screen = get_current_screen(); 33 if ( is_null( $screen )|| 'shop_order' !== $screen->post_type ) {33 if ( null === $screen || 'shop_order' !== $screen->post_type ) { 34 34 return; 35 35 } 36 36 37 $order = wc_get_order( $post ); 38 if ( false === $order ) { 39 return; 37 $order = false; 38 if ( $theorder instanceof \WC_Order ) { 39 $order = $theorder; 40 } elseif ( $post ) { 41 $order = wc_get_order( $post->ID ); 40 42 } 41 43 42 if ( ! Order::is_sf_order( $order ) ) {44 if ( ! $order || ! Order::is_sf_order( $order ) ) { 43 45 return; 44 46 } … … 48 50 __( 'ShoppingFeed details', 'shopping-feed' ), 49 51 array( $this, 'render' ), 50 'shop_order',52 $screen, 51 53 'side' 52 54 ); … … 56 58 * Render the metabox content. 57 59 * 58 * @param WP_Post $post 60 * @param \WP_Post|\WC_Order $post_or_order_object 61 * 62 * @author Stéphane Gillot 59 63 */ 60 public function render( $post ) {61 $order = wc_get_order( $post );64 public function render( $post_or_order_object ) { 65 $order = ( $post_or_order_object instanceof \WP_Post ) ? wc_get_order( $post_or_order_object->ID ) : $post_or_order_object; 62 66 if ( false === $order ) { 63 67 return; … … 77 81 <span><?php esc_html_e( 'MarketPlace', 'shopping-feed' ); ?>:</span> <?php echo esc_html( $channel_name ); ?> 78 82 </li> 79 <?php80 do_action( 'sf_show_metas', $order );81 ?>83 <?php 84 do_action( 'sf_show_metas', $order ); 85 ?> 82 86 </ul> 83 87 <?php -
shopping-feed/trunk/src/Orders/Order.php
r3032069 r3046841 6 6 defined( 'ABSPATH' ) || exit; 7 7 8 use Automattic\WooCommerce\Utilities\OrderUtil; 8 9 use ShoppingFeed\ShoppingFeedWC\Addons\Marketplace; 9 10 use ShoppingFeed\ShoppingFeedWC\Dependencies\ShoppingFeed\Sdk\Api\Order\OrderResource; … … 86 87 87 88 //Addresses 88 $wc_order->set_ address( $this->shipping_address, 'shipping');89 $wc_order->set_ address( $this->billing_address );89 $wc_order->set_shipping_address( $this->shipping_address ); 90 $wc_order->set_billing_address( $this->billing_address ); 90 91 91 92 //Note … … 237 238 */ 238 239 public static function exists( $sf_order ) { 239 return ! empty( wc_get_orders( array( Query::WC_META_SF_REFERENCE => $sf_order->getReference() ) ) ); 240 $args = [ Query::WC_META_SF_REFERENCE => $sf_order->getReference() ]; 241 if ( class_exists( OrderUtil::class ) && OrderUtil::custom_orders_table_usage_is_enabled() ) { 242 $args = [ 243 'meta_query' => [ 244 [ 245 'key' => Query::WC_META_SF_REFERENCE, 246 'value' => $sf_order->getReference(), 247 ], 248 ], 249 ]; 250 } 251 252 return ! empty( wc_get_orders( $args ) ); 240 253 } 241 254 -
shopping-feed/trunk/src/Orders/Orders.php
r3032069 r3046841 71 71 } 72 72 73 $order_api = $shop->getOrderApi(); 74 $filters = array(); 75 $filters['acknowledgment'] = 'unacknowledged'; 73 $order_api = $shop->getOrderApi(); 74 $filters = array( 75 'acknowledgment' => 'unacknowledged', 76 'status' => ShoppingFeedHelper::sf_order_statuses_to_import(), 77 'since' => gmdate( 'c', strtotime( '14 days ago' ) ), 78 ); 76 79 77 $filters['status'] = ShoppingFeedHelper::sf_order_statuses_to_import(); 80 $orders_options = ShoppingFeedHelper::get_sf_orders_options(); 81 $include_fulfilled_by_channel = (bool) ( $orders_options['import_order_fulfilled_by_marketplace'] ?? false ); 78 82 79 83 foreach ( $order_api->getAll( $filters ) as $sf_order ) { … … 82 86 sprintf( 83 87 /* translators: 1: Order reference. 2: Order id. */ 84 __( 'Order already imported %1$ 1s (%2$2s)', 'shopping-feed' ),88 __( 'Order already imported %1$s (%2$s)', 'shopping-feed' ), 85 89 $sf_order->getReference(), 86 90 $sf_order->getId() … … 93 97 } 94 98 95 if ( ! $this->can_import_order( $sf_order ) ) { 99 $import_order_check = $this->can_import_order( $sf_order, $include_fulfilled_by_channel ); 100 if ( is_wp_error( $import_order_check ) ) { 101 /** @psalm-suppress PossiblyInvalidMethodCall */ 96 102 ShoppingFeedHelper::get_logger()->notice( 97 103 sprintf( 98 /* translators: 1: Order reference . 2: Order id. */99 __( 'Order fulfilled by channel %1$1s (%2$2s)', 'shopping-feed' ),104 /* translators: 1: Order reference, 2: Order id, 3: error message. */ 105 __( 'Order %1$s (%2$s) can\'t be imported : %3$s', 'shopping-feed' ), 100 106 $sf_order->getReference(), 101 $sf_order->getId() 107 $sf_order->getId(), 108 $import_order_check->get_error_message() 102 109 ), 103 110 array( … … 121 128 * 122 129 * @param OrderResource $sf_order 130 * @param bool $import_orders_fufilled_by_channel 123 131 * 124 * @return bool 132 * @return bool|\WP_Error true if the order can be imported or WP_Error with 133 * the reason the order can't be imported otherwise. 125 134 */ 126 public function can_import_order( $sf_order ) { 127 // Allow user for force imports for orders fulfilled by the marketplaces. 128 $orders_options = ShoppingFeedHelper::get_sf_orders_options(); 129 if ( isset( $orders_options['import_order_fulfilled_by_marketplace'] ) && true === (bool) $orders_options['import_order_fulfilled_by_marketplace'] ) { 135 public function can_import_order( $sf_order, $import_orders_fufilled_by_channel = false ) { 136 $sf_order_data = $sf_order->toArray(); 137 $status = $sf_order_data['status'] ?? ''; 138 $anonymized = (bool) ( $sf_order_data['anonymized'] ?? false ); 139 140 // Always skip anonymized orders. 141 if ( $anonymized ) { 142 return new \WP_Error( 143 'shoppingfeed_order_import_anonymized_order', 144 __( 'Order data has been anonymized.', 'shopping-feed' ) 145 ); 146 } 147 148 $fulfilled_by_marketplace = $this->is_fulfilled_by_marketplace( $sf_order ); 149 150 // If the order is fulfilled by the merchant 151 if ( ! $fulfilled_by_marketplace ) { 152 // Only import orders with the `waiting_shipment` status. 153 if ( 'waiting_shipment' !== $status ) { 154 return new \WP_Error( 155 'shoppingfeed_order_import_fulfilledby_store_incompatible_status', 156 sprintf( 157 /* translators: the order status */ 158 __( 'Order fulfilled by store with status "%s" will not be imported.', 'shopping-feed' ), 159 $status 160 ) 161 ); 162 } 163 130 164 return true; 131 165 } 132 166 133 return false === $this->is_fulfilled_by_marketplace( $sf_order ); 167 // Only imports orders fulfilled by channel if the flag is true. 168 if ( ! $import_orders_fufilled_by_channel ) { 169 return new \WP_Error( 170 'shoppingfeed_order_import_skip_fulfilledby_marketplace_orders', 171 __( 'Order if fulfilled by channel and will not be imported.', 'shopping-feed' ) 172 ); 173 } 174 175 return true; 134 176 } 135 177 } -
shopping-feed/trunk/vendor/autoload.php
r3032069 r3046841 5 5 require_once __DIR__ . '/composer/autoload_real.php'; 6 6 7 return ComposerAutoloaderInit c2cdf4a183c6afa546d559f3114241e2::getLoader();7 return ComposerAutoloaderInit843d602e5ba88bb852407d6ae830daa3::getLoader(); -
shopping-feed/trunk/vendor/composer/autoload_real.php
r3032069 r3046841 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit c2cdf4a183c6afa546d559f3114241e25 class ComposerAutoloaderInit843d602e5ba88bb852407d6ae830daa3 6 6 { 7 7 private static $loader; … … 25 25 require __DIR__ . '/platform_check.php'; 26 26 27 spl_autoload_register(array('ComposerAutoloaderInit c2cdf4a183c6afa546d559f3114241e2', 'loadClassLoader'), true, true);27 spl_autoload_register(array('ComposerAutoloaderInit843d602e5ba88bb852407d6ae830daa3', 'loadClassLoader'), true, true); 28 28 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); 29 spl_autoload_unregister(array('ComposerAutoloaderInit c2cdf4a183c6afa546d559f3114241e2', 'loadClassLoader'));29 spl_autoload_unregister(array('ComposerAutoloaderInit843d602e5ba88bb852407d6ae830daa3', 'loadClassLoader')); 30 30 31 31 $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); … … 33 33 require __DIR__ . '/autoload_static.php'; 34 34 35 call_user_func(\Composer\Autoload\ComposerStaticInit c2cdf4a183c6afa546d559f3114241e2::getInitializer($loader));35 call_user_func(\Composer\Autoload\ComposerStaticInit843d602e5ba88bb852407d6ae830daa3::getInitializer($loader)); 36 36 } else { 37 37 $map = require __DIR__ . '/autoload_namespaces.php'; … … 54 54 55 55 if ($useStaticLoader) { 56 $includeFiles = Composer\Autoload\ComposerStaticInit c2cdf4a183c6afa546d559f3114241e2::$files;56 $includeFiles = Composer\Autoload\ComposerStaticInit843d602e5ba88bb852407d6ae830daa3::$files; 57 57 } else { 58 58 $includeFiles = require __DIR__ . '/autoload_files.php'; 59 59 } 60 60 foreach ($includeFiles as $fileIdentifier => $file) { 61 composerRequire c2cdf4a183c6afa546d559f3114241e2($fileIdentifier, $file);61 composerRequire843d602e5ba88bb852407d6ae830daa3($fileIdentifier, $file); 62 62 } 63 63 … … 71 71 * @return void 72 72 */ 73 function composerRequire c2cdf4a183c6afa546d559f3114241e2($fileIdentifier, $file)73 function composerRequire843d602e5ba88bb852407d6ae830daa3($fileIdentifier, $file) 74 74 { 75 75 if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { -
shopping-feed/trunk/vendor/composer/autoload_static.php
r3032069 r3046841 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit c2cdf4a183c6afa546d559f3114241e27 class ComposerStaticInit843d602e5ba88bb852407d6ae830daa3 8 8 { 9 9 public static $files = array ( … … 367 367 { 368 368 return \Closure::bind(function () use ($loader) { 369 $loader->prefixLengthsPsr4 = ComposerStaticInit c2cdf4a183c6afa546d559f3114241e2::$prefixLengthsPsr4;370 $loader->prefixDirsPsr4 = ComposerStaticInit c2cdf4a183c6afa546d559f3114241e2::$prefixDirsPsr4;371 $loader->classMap = ComposerStaticInit c2cdf4a183c6afa546d559f3114241e2::$classMap;369 $loader->prefixLengthsPsr4 = ComposerStaticInit843d602e5ba88bb852407d6ae830daa3::$prefixLengthsPsr4; 370 $loader->prefixDirsPsr4 = ComposerStaticInit843d602e5ba88bb852407d6ae830daa3::$prefixDirsPsr4; 371 $loader->classMap = ComposerStaticInit843d602e5ba88bb852407d6ae830daa3::$classMap; 372 372 373 373 }, null, ClassLoader::class); -
shopping-feed/trunk/vendor/composer/installed.php
r3032069 r3046841 6 6 'install_path' => __DIR__ . '/../../', 7 7 'aliases' => array(), 8 'reference' => ' 9c6a94ac05210aeae8eb3b694d0b7ba05fc72fbb',8 'reference' => 'fdaa5f2e9131eeaa2fa2912dc9f8e9d489733690', 9 9 'name' => 'shoppingfeed/shoppingfeed-for-woocommerce', 10 10 'dev' => false, … … 35 35 'install_path' => __DIR__ . '/../../', 36 36 'aliases' => array(), 37 'reference' => ' 9c6a94ac05210aeae8eb3b694d0b7ba05fc72fbb',37 'reference' => 'fdaa5f2e9131eeaa2fa2912dc9f8e9d489733690', 38 38 'dev_requirement' => false, 39 39 ),
Note: See TracChangeset
for help on using the changeset viewer.