Intereting Posts
Условия списка в категории Отображение категории WooCommerce на пользовательской странице Как я могу получить значение по умолчанию для каждой страницы? из настроек -> чтение. И общее количество сообщений? Как отобразить comment_form с коротким кодом при удалении его из позиции по умолчанию? Сайт больше не работает после сбоя сервера – как его восстановить Как отредактировать макет определенного почтового формата? получить последний добавленный термин от таксономии и вставить в переменную php Фильтр lostpassword_redirect не используется Добавление пользовательского css в тему в зависимости от того, зарегистрирован ли пользователь admin или нет Как связать 2 категории (синхронизация) Присылать конкретным пользователям электронное сообщение, когда публикуются сообщения как json_encode (); содержимое Loop, чтобы закодированный массив был Мое меню WordPress, основанное на загрузке Twitter, создает пункт меню, а не элемент страницы Проблема с выпуском новой строки TinyMce Chrome Как добавить простой автоматический подсчет числа в контактной форме?

Как добавить пользовательскую функцию для добавления / обновления продукта?

Конечной целью здесь является плагин, так что когда элемент добавляется или обновляется в WooCommerce, я вызываю пользовательскую функцию для извлечения дополнительных данных из API. Например, если бы я хотел добавить ISBN 1119327776, я бы создал новый продукт с этим SKU, а затем, когда я нажму публикацию, я бы назвал API рекламы продукта Amazon, чтобы собирать и вставлять заголовок, описание, размеры и т. Д. Проблема заключается в том, Я зацикливаюсь на том, где и как на самом деле добавить действие. Я пытался:

//test wp_update_post add_action hook function update_test() { echo "this was a success!"; } add_action( "wp_update_post", "update_test" ); //test save_post add_action hook function update_test() { echo "this was a success!"; } add_action( "save_post", "update_test" ); //test save_post_product add_action hook function update_test() { echo "this was a success!"; } add_action( "save_post_product", "update_test" ); 

Я пробовал это как в файлах функций темы, так и в качестве настраиваемого плагина, но без успеха. Однако использование wp_update_post создало выход, когда я нажал «Добавить продукт», а не когда я нажимаю «Опубликовать» на этом новом продукте.

Обновление: следующий код действительно перезагружает заголовок, однако перед этим он отключается. Как будто он пытается зациклять все продукты и обновлять заголовки.

 add_action( "save_post_product", "make_api_call" ); function make_api_call( $post_id ) { $datas["ID"] = $post_id; $datas["post_title"] = "this title was reset"; wp_update_post( $datas ); } 

Этот код действительно работает. В вопросе я создал редактирование, в котором говорилось об этом. Это было связано с созданным бесконечным циклом. Следующий код исправляет эту проблему.

 function make_api_call( $post_id ) { //unhook to avoid infinite loop remove_action( "save_post_product", "make_api_call" ); //make API call and pass data into update array $update["ID"] = $post_id; $update["post_title"] = "this title was reset"; //update the post wp_update_post( $update ); //re-hook the disabled function add_action( "save_post_product", "make_api_call" ); } add_action( "save_post_product", "make_api_call" );