【问题标题】:Updating WordPress account email with WooCommerce billing email after checkout结帐后使用 WooCommerce 帐单电子邮件更新 WordPress 帐户电子邮件
【发布时间】:2021-02-18 19:39:05
【问题描述】:

成功结帐后,我需要使用 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);
}

我是否使用过时的代码?

【问题讨论】:

    标签: php wordpress woocommerce orders usermetadata


    【解决方案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会向新用户邮箱发送邮件。

    【讨论】:

      猜你喜欢
      • 2022-01-02
      • 2020-06-10
      • 2016-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-10
      • 2015-11-01
      相关资源
      最近更新 更多