Когда пользователь делает заказ, заказ устанавливается в режим ожидания, и в магазин отправляется электронное письмо с новым заказом со ссылкой для подтверждения заказа. Я могу добавить ссылку, но не могу изменить статус заказа (до обработки) в Woocommerce, когда я нажимаю ссылку в электронном письме.
Вот как я добавляю ссылку в электронное письмо (эта часть работает)
add_action( 'woocommerce_email_order_meta', 'ct_add_link_to_new_order__email', 20, 4 );
function ct_add_link_to_new_order__email( $order, $sent_to_admin, $plain_text, $email ) {
if ( $email->id == 'new_order' ) {
$link = '<p>';
$link .= '<a href="'. get_site_url() .'/order/s='. absint( $order->id ) .'" >';
$link .= pll__( 'Click here to go confirm the order' );
$link .= '</a>';
$link .= '</p>';
echo $link;
}
}
Вот как я думал, что получу параметр и изменю статус заказа
add_action( 'init', 'ct_confirm_order');
function ct_confirm_order(){
if ( isset( $_GET['s'] ) ){
$order_id = intval( $_GET['s'] );
$order = new WC_Order($order_id);
$order = wc_get_order( $order_id );
$order->update_status( "processing" );
return;
}
}
Когда я нажимаю ссылку, я получаю страницу 404, не существует (я создал страницу заказа) и статус не изменился.