Update_post_meta не работает в хуке save_postPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Update_post_meta не работает в хуке save_post

Сообщение Anonymous »

Я пытаюсь обновить настраиваемое поле (порядок) внутри POST при его сохранении.
Согласно моим журналам, все работает гладко, даже функция возвращает true, но значение не меняется должным образом .
Вот мой код:

Код: Выделить всё

function update_on_save($post_id) {
error_log("fonction post_id :".$post_id);
// Enregistrement automatique = on sort
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return;
}
if ($post_id && get_post_type($post_id) == 'post') {
if(in_category('Orquera Listings',$post_id)) {
$status = get_post_meta($post_id,'status', true);
error_log("status :".$status);

switch ($status) {
case 'Pending':
$order = 1;
break;
case 'For Sale':
$order = 2;
break;
case 'Sold':
$order = 3;
break;
default:
$order = 4;
}

error_log("order : ".$order);
$result = update_post_meta($post_id, 'order', $order);
error_log('result :'.$result);

}
}
}
add_action('save_post', 'update_on_save', 90,1);
Мои журналы дают мне:
  • функция post_id:47377
  • статус :Продано
  • заказ: 3
  • результат: 1
Какой это то, что я хочу, здесь порядок должен быть установлен на 3, но мои данные не обновляются.
Что я делаю неправильно?
Я пробовал много чего, даже пробовал использовать wp_after_insert_post, но до сих пор мое поле «порядок» не сдвинулось ни на дюйм.
Добавление параметров: $result = update_post_meta($post_id, ' order', $order,$old_order);
Изменение приоритета...
Изменить:
Я попробовал это:
$wpdb->update($wpdb->prefix.'postmeta', array('meta_value' => $order), array('post_id' => $post_id,'meta_key' => 'order'));
$order_db = get_post_meta($post_id,'order', true);

error_log('order_db :'.$order_db);
Показывает 3 по порядку. Я чувствую, что значение снова сохраняется, когда я обновляю форму. Поле «порядок» можно редактировать, но я хочу принудительно указать значение.
Для ясности: я сохраняю сообщение и помещаю 30 в поле порядка, чтобы проверить его. Но это значение будет переопределено моим фрагментом благодаря save_post. Я чувствую, что он обновлен, но значение, которое я ввел в поле в BO, переопределяет его и после этого сохраняет его снова.

Подробнее здесь: https://stackoverflow.com/questions/783 ... -post-hook
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»