在Worpress中检测特定的update_user_meta

时间:2019-03-22 14:34:30

标签: php wordpress woocommerce hook-woocommerce

我想编写一个每次调用此功能时都会启动一个功能的Wordpress / WooCommerce插件:

update_user_meta($user_id,'mwb_wpr_points',$nomber_of_points);

但是我不知道应该使用哪个钩子以及如何使用它。

1 个答案:

答案 0 :(得分:2)

有人问here类似的问题。

答案表明需要使用insert_user_meta过滤器。

我尚未测试以下代码,但我相信要更新的值将存储在$_POST中。您可以对照现有值来确定该字段是否正在更新。希望这足以让您入门。

add_filter('insert_user_meta', 'my_updated_user_meta', 10, 3);
function my_updated_user_meta($meta, $user, $update) {

     // if not updating the field, because it is a create, do nothing  
     if( true !== $update ) {
          return $meta;
      }


      $old_meta = get_user_meta( $user->ID );
      if(isset($_POST['mwb_wpr_points']) && isset($old_meta['mwb_wpr_points']))
          if($old_meta['mwb_wpr_points'][0] !== $_POST['mwb_wpr_points']) {

              // mwb_wbr_points has been updated.
              // do your code here

          }
      }

      return $meta;
}