При обновлении поля ACF введите значение поля в мета-значение WooCommerce. - PullRequest
0 голосов
/ 15 апреля 2019

Я использую поля плагинов Advanced Custom Fields (ACF) в продукте woocommerce (бронирование жилья), и когда поле ACF обновляется, я хочу перенести эти значения в конкретное поле woocommerce.

Используются плагины бронирования Woocommerce Booking - Бронирование и Бронирование и Бронирование жилья Woocommerce (Расширение бронирования жилья для основного плагина бронирования WooCommerce)

(1. Может кто-нибудь показать мне код, чтобы сделать что-то вроде этого? Я провел тонны поисков в Google, но не смог найти никаких полезных решений.

  1. Как только у меня будет код для обновления полей, как мне найти конкретный хук woocommerce для каждого конкретного поля wc?

  2. Кроме того, как я могу указать wc product тип размещения для бронирования?)

Edit: ACF имеет код для обновления поля на основе другого поля https://www.advancedcustomfields.com/resources/update_field/ Итак, мой вопрос здесь заключается в том, как настроить код так, чтобы при обновлении поля ACF, которое прикреплено к типу публикации продукта, можно было автоматически использовать значение этих полей для значения данных продукта woocommerce.

Например, у меня есть поле ACF «Цена за ночь», и я добавляю число в это поле. Когда я щелкаю, чтобы обновить этот продукт, я хочу, чтобы этот номер автоматически попадал в данные продукта woocommerce стандартной цены.

1 Ответ

1 голос
/ 15 апреля 2019

Вы не очень хорошо искали, смотрите этот простой поиск с "Хуком действия ACF при обновлении поля" .

Первая ссылка - хорошая, и хук, который нужно использоватьэто что-то вроде:

add_action('acf/save_post', 'my_acf_save_post', 1);
function my_acf_save_post( $post_id ) {

    // bail early if no ACF data
    if( empty($_POST['acf']) ) {
        return;
    }

    // An array of fields values
    $fields = $_POST['acf'];

    // Get a specific field value and push to a specific Woocommerce meta data
    if ( isset($fields['field_abc123']) ) {
        $field_abc123 =  $fields['field_abc123'];

        // Push to a specific woocommerce meta data:
        update_post_meta( $post_id, 'targeted_meta_key', sanitize_text_field( $field_abc123 ) );
    }
}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы).Это должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...