WooCommerce купон рассчитать от обычной цены - PullRequest
0 голосов
/ 11 июня 2019

Мне нужны функциональные возможности для "друзей" клиентов, которые могут получить продукты по более выгодной цене. Решение на основе ролей пользователей - это не то, что я ищу, и клиент хочет, чтобы оно работало с купонами. Они дают код купона своим клиентам и получают, например, 8 € от РЕГУЛЯРНОЙ цены на определенные продукты. Проблема в том, что по умолчанию купоны WooCommerce рассчитывают его по минимальной цене. Если цена продажи установлена, то этот расчет неверен, и клиент получает его слишком дешево. По сути, я хочу, чтобы купон давал определенным товарам фиксированную «дружескую» цену.

Я гуглил и не могу найти готового решения для этого. Любые предложения, как решить эту проблему, приветствуются.

Я проверил несколько плагинов, но ни один из них не удовлетворил мои требования.

Ответы [ 2 ]

0 голосов
/ 11 июня 2019

Плагин Правила скидок для WooCommerce может соответствовать вашим требованиям.

С его помощью вы можете применить купон или любое правило скидки для конкретных клиентов.

Также есть настройка Применить скидку на основе Цена продажи или Обычная цена.

0 голосов
/ 11 июня 2019

Добавить в functions.php.На основе этого кода https://brilliantinfo.net/apply-coupon-discount-on-regular-price-in-woocommerce/

Изменено для типа купона fixed_product.Если вам нужно, чтобы это работало только для определенного купона, я могу изменить это.(В нынешнем виде это будет применяться ко всем используемым купонам fixed_product, которые используются)

    add_action( 'woocommerce_before_calculate_totals', 'adjust_cart_coupon', 10, 1);
    function adjust_cart_coupon( $cart_object) {
      global $woocommerce;

      if ( is_admin() && ! defined( 'DOING_AJAX' ) ){
        return;
      }

      $coupon = False;

      if ($coupons = WC()->cart->get_applied_coupons()  == False ) {
          $coupon = False;
      } else {
        foreach ( WC()->cart->get_applied_coupons() as $code ) {
          $coupons1 = new WC_Coupon( $code );
          if ($coupons1->type == 'fixed_product'){
            $coupon = True;
          }
        }
      }

      if ($coupon == True){
        foreach ( $cart_object->get_cart() as $cart_item ){
          $price = $cart_item['data']->regular_price;
          //sets cart item to use regular price and not sale price
          $cart_item['data']->set_price( $price );
        }
      }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...