Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (7)

Лучшие ответы пользователя

Все ответы (8)
  • Как отредактировать выбор товара в админке Woocommerce?

    @castetus Автор вопроса
    Вроде разобрался. Если надо кому - фильтр 'woocommerce_json_search_found_products' за это отвечает. И через него уже переопределяется WC_AJAX::json_search_products() а там уже просто все делается.
    Ответ написан
    Комментировать
  • Как отключить swiper слайдер на десктопе?

    @castetus
    например:
    document.addEventListener('DOMContentLoaded', () => {
      const width = window.innerWidth
      if (width < 1024){
        const slider = new Swiper()
      }
    })
    Ответ написан
    1 комментарий
  • Как динамически изменить цену доставки на checkout?

    @castetus Автор вопроса
    Решение найдено, да здравствует Гугл всемогущий :)
    Может, пригодится кому:
    add_action('wp_ajax_set_shipping_price', 'set_shipping_price');
    add_action('wp_ajax_nopriv_set_shipping_price', 'set_shipping_price');
    
    function set_shipping_price(){
    	if (isset($_POST['cost'])){
    		$new_cost = $_POST['cost'];
    	}
    
    	WC()->session->set( 'shipping_calculated_cost', $new_cost );
    
    	wp_die();
    }
    
    add_filter('woocommerce_package_rates', 'update_shipping_costs_based_on_cart_session_custom_data', 10, 2);
    function update_shipping_costs_based_on_cart_session_custom_data( $rates, $package ){
    
        if ( is_admin() && ! defined( 'DOING_AJAX' ) )
            return $rates;
        $cost = '0';
        $calculated_cost = WC()->session->get( 'shipping_calculated_cost');
        foreach ( $rates as $rate_key => $rate ) { 
    		$method_id = $rate->method_id; 
    		$rate_id = $rate->id;
            if ( 'flat_rate' === $method_id ) {
                if( ! empty( $calculated_cost ) ) {
                    $cost = $calculated_cost;
                }
                $rates[$rate_id]->cost = $calculated_cost;
            }
        }
        return $rates;
    }

    И на клиенте update_checkout по саксессу.
    Ответ написан
    1 комментарий
  • Почему не работает Swiper с тегом picture в слайдах?

    @castetus Автор вопроса
    В общем, иссследование вопроса показало следующее:
    При наличии на странице других скриптов Swiper почему-то не успевал полностью инициализироваться. То есть контейнер он подхватывал, а сами слайды - нет. Пока вопрос решен при помощи асинхронной инициализации:
    document.addEventListener('DOMContentLoaded', function(){
      setTimeout(() => {
        const howtoSlider = new Swiper('.howto', {
        loop: true,
        navigation: {
          nextEl: '.slider-button-next',
          prevEl: '.slider-button-prev',
        },
      })
      }, 1000);
    })

    Странно еще, что эффект проявлялся только при picture в слайдах, при img все было нормально.
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (19)