В: Я хочу, чтобы мой клиент имел доступ к загружаемым продуктам, когда статус его заказа «на удержании».
Когда клиент размещает заказ на загружаемый продукт и физический продукт, я иногда хочу разместить заказ в состоянии удержания (вручную). Но тогда клиент не может загрузить загружаемый продукт.
Доступ к грантам регулируется в woocommerce / includes / wc-order-functions.php (2.2)
/** * Order Status completed - GIVE DOWNLOADABLE PRODUCT ACCESS TO CUSTOMER. * * @access public * @param int $order_id */ function wc_downloadable_product_permissions( $order_id ) { if ( get_post_meta( $order_id, '_download_permissions_granted', true ) == 1 ) { return; // Only do this once } $order = wc_get_order( $order_id ); if ( $order && $order->has_status( 'processing' ) && get_option( 'woocommerce_downloads_grant_access_after_payment' ) == 'no' ) { return; } if ( sizeof( $order->get_items() ) > 0 ) { foreach ( $order->get_items() as $item ) { $_product = $order->get_product_from_item( $item ); if ( $_product && $_product->exists() && $_product->is_downloadable() ) { $downloads = $_product->get_files(); foreach ( array_keys( $downloads ) as $download_id ) { wc_downloadable_file_permission( $download_id, $item['variation_id'] > 0 ? $item['variation_id'] : $item['product_id'], $order, $item['qty'] ); } } } } update_post_meta( $order_id, '_download_permissions_granted', 1 ); do_action( 'woocommerce_grant_product_download_permissions', $order_id ); } add_action( 'woocommerce_order_status_completed', 'wc_downloadable_product_permissions' ); add_action( 'woocommerce_order_status_processing', 'wc_downloadable_product_permissions' );
Что мне нужно изменить, чтобы это сделать?
14-07-2016 ОБНОВЛЕНИЕ
Я заплатил кодер за то, что помог мне. Это код, который я искал. Добавьте этот код в свои функции. Php:
function add_onhold_status_to_download_permission($data, $order) { if ( $order->has_status( 'on-hold' ) ) { return true; } return $data; } add_filter('woocommerce_order_is_download_permitted', 'add_onhold_status_to_download_permission', 10, 2);