如何在更新USER_EMAIL时更新BILLING_EMAIL

时间:2014-01-20 作者:hazem

我正在努力实现user_emailbilling_email (woocommerce电子邮件的关键)。到目前为止,我的做法是,当客户编辑/更新其账单电子邮件地址时user_email 使用以下代码更新:

add_action( \'woocommerce_customer_save_address\',\'isa_customer_save_address\', 10, 1);

function isa_customer_save_address() {

global $woocommerce;
$user_id = get_current_user_id();

        wp_update_user( array ( \'ID\' => $user_id, \'user_email\' =>    $_POST[\'billing_email\'] ) ) ;

}
现在如何更新客户的billing_email 当他们编辑/更新user_email?

1 个回复
SO网友:hornj

这段代码应该可以为您做到这一点。它向WordPress配置文件的更新中添加操作,检查电子邮件是否已更新,如果已更新,它还会更新Woocommerce地址。

add_action(\'profile_update\', \'sync_woocommerce_email\', 10, 2) ;

function sync_woocommerce_email( $user_id, $old_user_data ) {
    $current_user = wp_get_current_user();

    if ($current_user->user_email != $old_user_data->user_email) {
        wp_update_user( array ( \'ID\' => $current_user->ID, \'billing_email\' => $current_user->user_email ) ) ;
     }
}
Edit: 我在这里做错了什么,我猜这很基本,我只是还没看到而已。

结束

相关推荐

private functions in plugins

我开发了两个插件,其中一个功能相同(相同的名称,相同的功能)。当试图激活两个插件时,Wordpress会抛出一个错误,因为它不允许我以相同的名称定义函数两次。有没有一种方法可以使这个函数只对插件私有,而不使用面向对象编程,也不简单地重命名函数?我不想使用OOP,因为我首先要学习它。此外,我不想重命名该函数,因为我可能也想在其他插件中使用它,而重命名感觉不太合适。