php - 结账后使用 WooCommerce 账单电子邮件更新 WordPress 帐户电子邮件

标签 php wordpress woocommerce orders usermetadata

成功结账后,我需要使用 woocommerce 账单电子邮件更新 WordPress 帐户电子邮件。我使用了这段代码,但它不起作用:

/* 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);
}

我使用了过时的代码吗?

最佳答案

有一些错误。请尝试以下操作:

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 会向新用户电子邮件发送一封电子邮件。

关于php - 结账后使用 WooCommerce 账单电子邮件更新 WordPress 帐户电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66267011/

相关文章:

javascript - 使用 Vuejs 的单个数组元素中的多个字段

php - 创建内部包含不同变量的 php 副本

php - 使用 Wordpress 插件 API 编辑 .htaccess?

javascript - Jquery 脚本无法在更改时更改 CSS

php - 自定义 Woocommerce 店面主页上显示的产品

php - 如何重新索引 MySQL 列?

php - 如何在 PHP 中查找 unicode 字符类

javascript - 在 TinyMCE 中启用 flickr 和 picasa

php - 使用 if/else 选择 php 输出源

php - 在自己的插件中获取所有 WooCommerce 产品