Функциональность «Добавить в корзину» вместо поведения кнопки «Выбрать параметры» для переменных продуктов - PullRequest
0 голосов
/ 13 февраля 2020

Woocommerce имеет два типа кнопок в продукте l oop

  • «добавить в корзину» для добавления простых товаров в корзину
  • «выбрать параметры», если простой продукт становится добавляется переменная единица или опция подписки.

Моя настройка:

Все продукты Woocommerce настраиваются как простые продукты и продукты подписки одновременно, используя следующие плагины

  • "Подписка Woocommerce"
  • "Все продукты для подписки Woocommerce". По умолчанию установлен простой продукт.

Теперь кнопки на всех продуктах изменяются с «добавить в корзину» на «выбрать параметры». Это поведение по умолчанию в Woocommerce.


Мой вопрос:

Как сохранить кнопку «добавить в корзину» и ее функциональность добавления простого товара в корзину, несмотря на наличие переменного товара?

Logi c за ним: пользователям предоставляется возможность сделать выбор при оформлении заказа и, следовательно, добавить функциональность в корзину вместо того, чтобы перенаправлять на страницу отдельного продукта для выбора.

Ответы [ 2 ]

1 голос
/ 13 февраля 2020
function filter_woocommerce_loop_add_to_cart_link( $args, $product ) {

    if ( is_shop() && $product->product_type === 'simple' ) {
        $product_id = $product->get_id();
        $product_sku = $product->get_sku();
        $product_url = $product->add_to_cart_url();
        $quantity = isset( $args['quantity'] ) ? $args['quantity'] : 1;
        $text = $product->add_to_cart_text();

        $args = '<a rel="nofollow" href="' . $product_url . '" data-quantity="' . $quantity . '" data-product_id="' . $product_id . '" data-product_sku="' . $product_sku . '" class="button product_type_simple add_to_cart_button ajax_add_to_cart add-to-cart" aria-label="Add to cart"><em>' . $text . '</em></a>';
    }

    return $args; 
}
add_filter( 'woocommerce_loop_add_to_cart_link', 'filter_woocommerce_loop_add_to_cart_link', 10, 2 );
0 голосов
/ 16 февраля 2020
function filter_woocommerce_loop_add_to_cart_link( $link, $product ) {

    if ( is_shop() && $product->product_type === 'simple' ) {
        $product_id = $product->get_id();
        $product_sku = $product->get_sku();

          $link = '<a rel="nofollow" href="?add-to-cart=' . $product_id . '" data-quantity="1" data-product_id="' . $product_id . '" data-product_sku="' . $product_sku . '" class="button product_type_simple add_to_cart_button ajax_add_to_cart add-to-cart" aria-label="Add to cart"><em>Add to cart</em></a>';

    }

    return $link; 
}
add_filter( 'woocommerce_loop_add_to_cart_link', 'filter_woocommerce_loop_add_to_cart_link', 10, 2 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...