仅允许在订单状态 -> 已完成的情况下重新订购。
如果您想在thankyou页面上重新订购,那么首先您应该允许重新订购状态为暂停、待处理、处理等。
像这样:
add_filter( 'woocommerce_valid_order_statuses_for_order_again', 'allowed_order_again_status', 10, 1);
function allowed_order_again_status($array){
$array = array_merge($array, array('on-hold','pending', 'processing', 'completed'));
return $array;
}
然后使用 woocommerce_thankyou 钩子添加重新排序按钮,如下所示:
add_filter( 'woocommerce_thankyou', 're_order_woocommerce_thankyou', 4 );
function re_order_woocommerce_thankyou($order_id) {
$order = wc_get_order($order_id);
if ( $order->has_status( 'completed' ) || $order->has_status( 'processing' ) || $order->has_status( 'pending' ) || $order->has_status( 'on-hold' ) ) {
$actions['order-again'] = array(
'url' => wp_nonce_url( add_query_arg( 'order_again', $order->id ) , 'woocommerce-order_again' ),
'name' => __( 'Order Again', 'woocommerce' )
);
?>
<a class="btn btn-primary" href="<?php echo $actions['order-again']['url'];?>" ><?php echo $actions['order-again']['name'];?> </a>
<?php
return $order_id;
}
}
注意:重新排序按钮将在页面的底部可见,但如果您希望重新排序按钮位于感谢页面上的任何位置,那么您应该覆盖感谢页面,只需从 woocommerce 插件复制并在您的活动主题中过去-> woocommerce ->thankyou.php 并相应地添加重新排序按钮