Обновите поле таксономии из поля ACF при сохранении записи

#php #wordpress #function #advanced-custom-fields

Вопрос:

У меня есть следующий код, в котором я обновляю поле таксономии car_year из поля acf field_611eb3690a472 при сохранении поста, и во второй функции я пытаюсь обновить тип car_fuel_type из поля acf field_612cfc339a8ba, но в то же время изменяю значение в зависимости от значения поля acf. Первое обновление поля car_year работает просто отлично, но поле car_fuel_type не получает никакого значения.

Это почему? Не могли бы вы опубликовать аналогичный пример, чтобы я мог понять, в чем проблема?

Вот мой код в functions.php файл:

 add_action('save_post', '__hp_frd_year'); function __hp_frd_year($post_id) {  $release_date = !empty($_POST['acf']['field_611eb3690a472']) ? $_POST['acf']['field_611eb3690a472'] : '';  $year = !empty($_POST['acf']['field_588f336aabaa6']) ? $_POST['acf']['field_588f336aabaa6'] : '';  $release_date_year = date("Y", strtotime($release_date) );  $new_term = wp_insert_term(  $release_date_year, // the term   'car_year', // the taxonomy  array(  'description' =gt; '',  'slug' =gt; strtolower($release_date_year),  )  );  if(!is_wp_error($new_term)) {  wp_set_object_terms( $post_id, $new_term['term_id'], 'car_year' );  } else {  $term_added = wp_set_object_terms( $post_id, $new_term-gt;error_data['term_exists'], 'car_year' );  } }  /**  * Fuel type data and fuel_type acf fields  */ add_action('save_post', '__hp_fuel_type'); function __hp_fuel_type($post_id) {  $fuel_type_acf = !empty($_POST['acf']['field_612cfc339a8ba']) ? $_POST['acf']['field_612cfc339a8ba'] : '';  $fuel_type_acf_lang == '';    if ((isset($fuel_type_acf) ? $fuel_type_acf : null) == 'ΒΕΝΖΙΝΗ') { // if ($fuel_type_acf == "ΒΕΝΖΙΝΗ"){  $fuel_type_acf_lang = '[:el]ΒΕΝΖΙΝΗ[:en]UNLEADED[:]';  }else{if ((isset($fuel_type_acf) ? $fuel_type_acf : null) == 'ΠΕΤΡΕΛΑΙΟ') { // if ($fuel_type_acf == "ΠΕΤΡΕΛΑΙΟ"){  $fuel_type_acf_lang = '[:el]ΠΕΤΡΕΛΑΙΟ[:en]DIESEL[:]';  }else{if ((isset($fuel_type_acf) ? $fuel_type_acf : null) == 'ΑΕΡΙΟ') { // if ($fuel_type_acf == "ΑΕΡΙΟ"){  $fuel_type_acf_lang = '[:el]ΑΕΡΙΟ[:en]GAS[:]';  }else{if ((isset($fuel_type_acf) ? $fuel_type_acf : null) == 'ΥΒΡΙΔΙΚΟ / ΒΕΝΖΙΝΗ') { // if ($fuel_type_acf == "ΥΒΡΙΔΙΚΟ / ΒΕΝΖΙΝΗ"){  $fuel_type_acf_lang = '[:el]ΥΒΡΙΔΙΚΟ / ΒΕΝΖΙΝΗ[:en]HYBRID / UNLEADED[:]';  }else{if ((isset($fuel_type_acf) ? $fuel_type_acf : null) == 'ΥΒΡΙΔΙΚΟ / ΠΕΤΡΕΛΑΙΟ') { // if ($fuel_type_acf == "ΥΒΡΙΔΙΚΟ / ΠΕΤΡΕΛΑΙΟ"){  $fuel_type_acf_lang = '[:el]ΥΒΡΙΔΙΚΟ / ΠΕΤΡΕΛΑΙΟ[:en]HYBRID / DIESEL[:]';  }else{if ((isset($fuel_type_acf) ? $fuel_type_acf : null) == 'ΗΛΕΚΤΡΙΚΟ') { // if ($fuel_type_acf == "ΗΛΕΚΤΡΙΚΟ"){  $fuel_type_acf_lang = '[:el]ΗΛΕΚΤΡΙΚΟ[:en]ELECTRIC[:]'; }}}}}}   $new_term = wp_insert_term(  $fuel_type_acf_lang, // the term   'car_fuel_type', // the taxonomy  array(  'description' =gt; '',  'slug' =gt; strtolower($fuel_type_acf_lang),  )  );  if(!is_wp_error($new_term)) {  wp_set_object_terms( $post_id, $new_term['term_id'], 'car_fuel_type' );  } else {  $term_added = wp_set_object_terms( $post_id, $new_term-gt;error_data['term_exists'], 'car_fuel_type' );  } }  

Спасибо

Комментарии:

1. вместо чего-либо еще, вы должны использовать корпус переключателя, или elseif{}

2. Я изменил все операторы }else{if (…) на }elseif ( … ), но это не решило проблему, которую я описываю… Поле car_fuel_type по-прежнему не получает никакого значения….. Спасибо

3. У кого — нибудь есть идеи о том, как это сделать??? Никто ! ! 1

Ответ №1:

Я наконец-то понял это :

 add_action('save_post', '__hp_fuel_type'); function __hp_fuel_type($post_id) { $fuel_type_acf = !empty($_POST['acf']['field_612cfc339a8ba']) ? $_POST['acf']['field_612cfc339a8ba'] : '';  if (((isset($fuel_type_acf) ? $fuel_type_acf : null) == 'ΒΕΝΖΙΝΗ') || ((isset($fuel_type_acf) ? $fuel_type_acf : null) == 'UNLEADED')) {  $fuel_type_acf = '[:el]ΒΕΝΖΙΝΗ[:en]UNLEADED[:]'; }else{if (((isset($fuel_type_acf) ? $fuel_type_acf : null) == 'ΠΕΤΡΕΛΑΙΟ') || ((isset($fuel_type_acf) ? $fuel_type_acf : null) == 'DIESEL')) {  $fuel_type_acf = '[:el]ΠΕΤΡΕΛΑΙΟ[:en]DIESEL[:]'; }else{if (((isset($fuel_type_acf) ? $fuel_type_acf : null) == 'ΑΕΡΙΟ') || ((isset($fuel_type_acf) ? $fuel_type_acf : null) == 'GAS')) {  $fuel_type_ac = '[:el]ΑΕΡΙΟ[:en]GAS[:]'; }else{if (((isset($fuel_type_acf) ? $fuel_type_acf : null) == 'ΥΒΡΙΔΙΚΟ / ΒΕΝΖΙΝΗ') || ((isset($fuel_type_acf) ? $fuel_type_acf : null) == 'HYBRID / UNLEADED')) {  $fuel_type_acf = '[:el]ΥΒΡΙΔΙΚΟ / ΒΕΝΖΙΝΗ[:en]HYBRID / UNLEADED[:]'; }else{if (((isset($fuel_type_acf) ? $fuel_type_acf : null) == 'ΥΒΡΙΔΙΚΟ / ΠΕΤΡΕΛΑΙΟ') || ((isset($fuel_type_acf) ? $fuel_type_acf : null) == 'HYBRID / DIESEL')) {  $fuel_type_acf = '[:el]ΥΒΡΙΔΙΚΟ / ΠΕΤΡΕΛΑΙΟ[:en]HYBRID / DIESEL[:]'; }else{if (((isset($fuel_type_acf) ? $fuel_type_acf : null) == 'ΗΛΕΚΤΡΙΚΟ') || ((isset($fuel_type_acf) ? $fuel_type_acf : null) == 'ELECTRIC')) {  $fuel_type_acf = '[:el]ΗΛΕΚΤΡΙΚΟ[:en]ELECTRIC[:]';}}}}}} $new_term = wp_insert_term(  $fuel_type_acf, // the term   'car_fuel_type', // the taxonomy  array(  'description' =gt; '',  'slug' =gt; strtolower($fuel_type_acf),  ) ); if(!is_wp_error($new_term)) {  wp_set_object_terms( $post_id, $new_term['term_id'], 'car_fuel_type' ); } else {  $term_added = wp_set_object_terms( $post_id, $new_term-gt;error_data['term_exists'], 'car_fuel_type' ); }}