猿问

检测用户何时更改其任何帐单明细(用户元数据)

我有一个 Woocommerce 网站,我想检测用户是否更改了他们的任何帐单明细。我环顾四周,发现了这个片段:


add_filter( 'insert_user_meta', function( $meta, $user, $update ) {

  if( true !== $update ) return $meta;

  $old_meta = get_user_meta( $user->ID );

  if( $old_meta[ 'first_name' ] !== $meta[ 'first_name' ] ) {

    //* Do something

  }

  return $meta;

}, 10, 3 );

每次对用户元进行更新时都会触发吗?如何添加以下所有字段以查看是否有任何更改:

  • 公司

  • 帐单地址行1

  • 帐单地址第 2 行

  • 城市

  • 邮政编码

  • 国家

或者,是否有一个 woocommerce 钩子?

这样的东西会起作用吗?

function my_profile_update( $user_id ) {

    if ( ! isset( $_POST['pass1'] ) || '' == $_POST['pass1'] ) {

        return;

    }


    // password changed...

}

add_action( 'profile_update', 'my_profile_update' );


尚方宝剑之说
浏览 136回答 2
2回答

qq_笑_17

如果用户在前端的 woocommerce 我的帐户页面中编辑地址,则有一个可用于编辑地址的钩子,您可以通过它来检查和完成您的工作。钩子如下 -do_action( 'woocommerce_customer_save_address', $user_id, $load_address );其中,$load_address回报'billing'只要用户修改结算领域。

慕哥9229398

我想说的是,如果钩子有效,它会被所有 Wordpress 用户触发,而不仅仅是客户。但我建议不要比较用户可以输入的数据。在你的情况下,如果他在他的名字中打错了字(比如大写的第一个字母),比较失败并且永远无法纠正。您正在寻找的是帐户页面挂钩之一。但不幸的是,我只能指出一个方向。
随时随地看视频慕课网APP
我要回答