Обнаружение конкретного update_user_meta в Worpress

#php #wordpress #woocommerce #hook-woocommerce

#php #wordpress #woocommerce #подключение-woocommerce

Вопрос:

Я хотел бы закодировать плагин WordPress / WooCommerce, запускающий функцию при каждом ее вызове :

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

Но я не знаю, какой хук мне следует использовать и как его использовать.

Ответ №1:

Аналогичный вопрос был задан здесь.

В ответе указано, что необходимо использовать 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']) amp;amp; 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;
}