etm*_*124 3 php wordpress woocommerce
我希望允许Order Again所有状态使用该功能。默认情况下,WooCommerce 仅允许状态为“已完成”的订单使用此功能。这似乎是一个两步过程,因为第一步需要向用户显示按钮,这是通过编辑此文件来完成的:
wc-template-functions.php
通过这段代码:
function woocommerce_order_again_button( $order ) {
//if ( ! $order || ! $order->has_status( 'completed' ) || ! is_user_logged_in() ) {
// Allow 'Order Again' at all times.
if ( ! $order || ! is_user_logged_in() ) {
return;
}
wc_get_template( 'order/order-again.php', array(
'order' => $order
) );
}
Run Code Online (Sandbox Code Playgroud)
通过注释掉该$order->has_status()方法的验证,我可以在页面上显示该按钮。但是,当尝试单击“再次订购”按钮时,它仍然会在将商品添加到购物车之前进行检查。
谁能告诉我这段代码存储在哪里以进行初步检查$order->has_status()?
小智 5
您只需将差异订单状态添加到过滤器即可woocommerce_valid_order_statuses_for_order_again。
add_filter( 'woocommerce_valid_order_statuses_for_order_again', 'add_order_again_status', 10, 1);
function add_order_again_status($array){
$array = array_merge($array, array('on-hold', 'processing', 'pending-payment', 'cancelled', 'refunded'));
return $array;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3578 次 |
| 最近记录: |