سلام
خوش برگشتید
همین کدی که دادید کافیه توی بخش پارامتر تابع بیایم همین قابلیت رو توی وضعیت پرداخت های دیگه هم اضافه کنیم. الان توی تابع گفته شده که فقط وقتی پرداخت کامل شد کلید سفارش مجدد رو نشون بده. ما می تونیم همین کد رو ویرایش کنیم و وضعیت های پرداخت نشده و لغو شده رو هم اضافه کنیم. یعنی اینطوری:
add_filter( 'woocommerce_my_account_my_orders_actions', 'woocommerceir_order_again_action', 9999, 2 );
function woocommerceir_order_again_action( $actions, $order ) {
if ( $order->has_status( 'completed' ) || $order->has_status( 'cancelled' ) || $order->has_status( 'processing' ) ) {
$actions['order-again'] = array(
'url' => wp_nonce_url( add_query_arg( 'order_again', $order->get_id(), wc_get_cart_url() ), 'woocommerce-order_again' ),
'name' => __( 'Order again', 'woocommerce' ),
);
}
return $actions;
}
اگه کد وضعیت ها کار نکرد، اینا رو هم تست کنید:
$order_statuses = array(
'wc-pending' => _x( 'Pending payment', 'Order status', 'woocommerce' ),
'wc-processing' => _x( 'Processing', 'Order status', 'woocommerce' ),
'wc-on-hold' => _x( 'On hold', 'Order status', 'woocommerce' ),
'wc-completed' => _x( 'Completed', 'Order status', 'woocommerce' ),
'wc-cancelled' => _x( 'Cancelled', 'Order status', 'woocommerce' ),
'wc-refunded' => _x( 'Refunded', 'Order status', 'woocommerce' ),
'wc-failed' => _x( 'Failed', 'Order status', 'woocommerce' ),
);
در کد بالا مثلا wc-cancelled
یک کد وضعیته. تست کنید خودتون