Поддержка WooCommerce Cross Sell не отображается.

  • Здравствуйте. Возникла проблема. Кросс селы прописаны в админке, но не отображаются в корзине товара. Приложил ссылку на пример товара, у него прописаны кросс селы, но если добавить его в корзину, то в корзине ничего не будет. Просмотрел инфу в интернете, где находится хук для отображения в корзине и где что прописывается. Сверил со своими файлами, там везде все на месте. Не могу понять, где удален какой то код, что не отображает кросс селы в корзине((

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • у вас точно есть такой хук:
    ad_action( 'woocommerce_cart_collaterals', 'woocommerce_cross_sell_display', 10);

    Если да, то стоит обратиться к автору того наколенного поделия, которое вы используете вместо нормальной темы

    Если да, то стоит обратиться к автору того наколенного поделия, которое вы используете вместо нормальной темы

    Добрый день. Да есть, в файле — wc_template_hooks.php В папке плагинов, вукоммерс. У меня подозрения, что это произошло после обновления вукоммерс или вордпресс. Так как раньше все работало и были кросселы.

    А также есть в файле — wc_template_functions.php такие строки —

    
    if ( ! function_exists( 'woocommerce_cross_sell_display' ) ) {
    
    	/**
    	 * Output the cart cross-sells.
    	 *
    	 * @param  int $limit (default: 2)
    	 * @param  int $columns (default: 2)
    	 * @param  string $orderby (default: 'rand')
    	 * @param  string $order (default: 'desc')
    	 */
    	function woocommerce_cross_sell_display( $limit = 2, $columns = 2, $orderby = 'rand', $order = 'desc' ) {
    		if ( is_checkout() ) {
    			return;
    		}
    		// Get visble cross sells then sort them at random.
    		$cross_sells = array_filter( array_map( 'wc_get_product', WC()->cart->get_cross_sells() ), 'wc_products_array_filter_visible' );
    
    		// Handle orderby and limit results.
    		$orderby     = apply_filters( 'woocommerce_cross_sells_orderby', $orderby );
    		$cross_sells = wc_products_array_orderby( $cross_sells, $orderby, $order );
    		$limit       = apply_filters( 'woocommerce_cross_sells_total', $limit );
    		$cross_sells = $limit > 0 ? array_slice( $cross_sells, 0, $limit ) : $cross_sells;
    
    		wc_get_template( 'cart/cross-sells.php', array(
    			'cross_sells'        => $cross_sells,
    
    			// Not used now, but used in previous version of up-sells.php.
    			'posts_per_page'	 => $limit,
    			'orderby'			 => $orderby,
    			'columns'			 => $columns,
    		) );
    	}
    }
    

    Вопрос по теме. Почему наколенного и что в ней не так, почему она не нормальная? Может я что то не замечаю. Почти 3 года работает, вроде жалоб не поступало.

    • Ответ изменён 4 года, 7 месяцев назад пользователем rider2006007. Причина: изменение

    Нашёл такую закономерность — если добавлять только один товар, у которого есть cross sell продукты, то они отображаются, стоит добавить ещё один товар в карзину и они вообще пропадают.

    Присоединяюсь к автору, может кто-то может подсказать в чём причина?

    Присоединяюсь к автору

    п.2 правил форума

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Тема «Cross Sell не отображается.» закрыта для новых ответов.