Estoy tratando de poner el botón Ordenar de nuevo en la página de agradecimiento pero no funciona, ¿qué hice mal?
Mi código en la página de agradecimiento
<?php echo esc_url( $order_again_url ); ?>
En mi function.php estoy usando
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; }
Reordenar solo permitido con estado de pedido -> completado. Si desea reordenar en la página de agradecimiento, primero debe permitir el estado para reordenar con en espera, pendiente, procesando, etc. como este:
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; }
Luego agregue el botón de reordenar usando ganchos de woocommerce_thankyou como este:
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; } }
Nota: el botón Reordenar estará visible en la parte inferior de la página, pero si desea el botón Reordenar en cualquier posición en la página de agradecimiento, debe anular la página de agradecimiento simplemente copie del complemento de woocommerce y pase dentro de su tema activo -> woocommerce -> gracias.php y agregue botón de reordenar en consecuencia
Botón/enlace Reordenar para la página de mi cuenta -> pestaña de pedido como esta:
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; } add_filter( 'woocommerce_my_account_my_orders_actions', 'woo_order_again_from_myaccount', 50, 2 ); function woo_order_again_from_myaccount( $actions, $order ) { 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' ) ); } return $actions; }