Обновление электронной почты учетной записи WordPress с помощью электронной почты для выставления счетов WooCommerce после оформления заказа

Мне нужно обновить электронную почту учетной записи WordPress с помощью электронной почты для выставления счетов woocommerce после успешной проверки. Я использовал этот код, но он не работает:

      /* Update account email based on woocommerce billing email */


add_filter( 'woocommerce_thankyou' , 'custom_update_checkout_fields', 10, 2 );

 function custom_update_checkout_fields($user_id, $old_user_data ) {
  $current_user = wp_get_current_user();
  
  // Updating Billing info
  
  if($current_user->user_email != $current_user->billing_email)
    update_user_meta($user_id, 'billing_email', $current_user->user_email);
}

Я использовал устаревший код?

1 ответ

Есть некоторые ошибки. Вместо этого попробуйте следующее:

      add_filter( 'woocommerce_thankyou' , 'thankyou_update_wordpress_user_email' );
function thankyou_update_wordpress_user_email( $order_id ) {
    $order         = wc_get_order( $order_id );
    $user          = $order->get_user();
    $billing_email = $order->get_billing_email();
  
    // Updating user account email
    if( is_a($user, 'WP_User' ) && $user->user_email != $billing_email ) {
        $user_data = wp_update_user( array( 'ID' => $user->ID, 'user_email' => $billing_email ) );
    }
}

Код находится в файле functions.php активной дочерней темы (или активной темы). Он должен работать.

Примечание: при изменении электронной почты пользователя WordPress отправляет электронное письмо на новый адрес электронной почты пользователя.

Другие вопросы по тегам