Когда я запускаю следующий хук действия для сохранения записи без выхода, WordPress перезаписывает значения, которые я установил для некоторых полей (не для всех). Особенно ключ _variable_pricing. Когда я установил выход; после этой функции и запрета WordPress завершить все действие, поле корректно обновляется в базе данных. Кажется, что-то пошло не так, как мне кажется?
function edit_photo_meta($post_id)
{
# Update meta
//... other fields to update
update_post_meta($post_id, '_variable_pricing', 1);
exit;
}
add_action('save_post', 'edit_photo_meta')
Спасибо!
Возможно автосохранение.
Пытаться
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
return;
в функции edit_photo_meta
Вероятно, порядок действий крючков. Вам лучше подключить обновленную мету:
add_action( 'updated_post_meta', 'override_post_meta', 10, 4 );
function override_post_meta( $meta_id, $post_id, $meta_key, &$meta_value )
{
if ( '_variable_pricing' == $meta_key ) {
update_post_meta($post_id, '_variable_pricing', 1);;
}
}
Этот крючок называется после мета обновлена, поэтому она переопределяет предыдущее значение.