Условный заказной суффикс цены для переменных продуктов в WooCommerce - PullRequest
1 голос
/ 15 апреля 2019

Я установил ценовой суффикс для всех своих продуктов в Woocommerce («в коробке» в моем случае).Это работает для переменных продуктов, а также для отдельных продуктов без проблем.

Теперь я хочу, чтобы этот префикс изменился на «на поддон» для некоторых вариантов продукта.Я много читал и много пробовал, но пока не нашел решения, которое можно было бы применить к отдельным вариантам продукта.Кто-нибудь может мне помочь?

Ниже приведен код, который я пробовал.Нет сообщений об ошибках, но это не меняет цену определенного идентификатора.

add_filter('woocommerce_available_variation', 'variation_price_custom_suffix', 10, 3 );
function variation_price_custom_suffix( $variation_data, $product, $variation ) {
    $args = array(
    'post_parent'   => get_the_ID() // get parent post-ID
);
$variations = get_posts( $args );

foreach ( $variations as $variation ) {

    // get variation ID
    $variation_ID = $variation->ID;

    // get variation price
    $variation_price = $product_variation->get_price_html();

    get_post_meta( $variation_ID , '_text_field_date_expire', true );

}
    if($variation_ID == 732) {
        $variation_data['price_html'] .= "Text after price";
    }
    return $variation_data;
}

Большое спасибо заранее и много поздравлений с пожеланиями

1 Ответ

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

Вы делаете это намного сложнее, чем должно быть, и есть некоторые ошибки:

  • Родительской переменной product является аргумент функции $product (переменная).
  • Вам не нужно делать цикл foreach, поскольку вы уже в нем.
  • Вы не используете: get_post_meta( $variation_ID , '_text_field_date_expire', true );
  • $variation переменная - массив данных текущего изменения ( см. Здесь )
  • $variation['variation_id'] - идентификатор варианта продукта
  • Идентификатор родительской переменной продукта (при необходимости): $product->get_id()

Итак, 2 возможных способа:

1) Ориентация на все варианты продукта определенного переменного продукта:

add_filter('woocommerce_available_variation', 'variation_price_custom_suffix', 10, 3 );
function variation_price_custom_suffix( $variation_data, $product, $variation ) {
    // For a specific variable product ID (and all its variations)
    if( $product->get_id() == 732 ) {

        $date_expire = get_post_meta( $product->get_id(), '_text_field_date_expire', true );

        $variation_data['price_html'] .= ' ' . __("Text after price");
    }

    return $variation_data;
}

2) Ориентация на уникальный вариант товара ID:

add_filter('woocommerce_available_variation', 'variation_price_custom_suffix', 10, 3 );
function variation_price_custom_suffix( $variation_data, $product, $variation ) {
    // For a specific product variation ID
    if( $variation['variation_id'] == 732 ) {

        $date_expire = get_post_meta( $variation['variation_id'], '_text_field_date_expire', true );

        $variation_data['price_html'] .= ' ' . __("Text after price");
    }

    return $variation_data;
}

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

Похожие: Добавление пользовательского текста в цену варьирования в Woocommerce

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