Ответы пользователя по тегу WooСommerce
  • Ошибка wordpress: /wp-includes/class-wp.php on line 785?

    @Gamelot
    Программист php
    Замечу, что Вы не написали, что конкретно за ошибка. Включите переменные WP_DEBUG - поставьте TRUE и WP_DEBUG_LOG тоже в TRUE в корне сайта в папке wp-config.php.

    В папке wp_content/ будет создаваться теперь файл debug.log, посмотрите в нем ошибку при новой загрузке страницы сайта с ошибкой и напишите сюда.
    Ответ написан
    Комментировать
  • Почему гости сайта не видят блок upsell, а админ видит?

    @Gamelot
    Программист php
    Надо проверить шаблоны страницы, в которой у Вас стоит вызов этой функции. Дело либо в шаблоне страницы, в вызове этой страницы, либо внутри этой функции.

    Вот исходный код для Woo версии 6.7.0. Видим, что для вывода используется шаблон single-product/up-sells.php. Нужно заглянуть в него как в папке /wp-content/plugins/woocommerce/templates, так и в теме /wp-content/themes/theme_name/woocommerce/.

    Еще Вы можете видеть вызовы хуков - apply_filters(). В них тоже может быть проблема.

    Почему-то в коде я не вижу блок - if ( $upsells ) : Видимо, у Вас другая версия.

    function woocommerce_upsell_display( $limit = '-1', $columns = 4, $orderby = 'rand', $order = 'desc' ) {
    	global $product;
    
    	if ( ! $product ) {
    		return;
    	}
    
    	// Handle the legacy filter which controlled posts per page etc.
    	$args = apply_filters(
    		'woocommerce_upsell_display_args',
    		array(
    			'posts_per_page' => $limit,
    			'orderby'        => $orderby,
    			'order'          => $order,
    			'columns'        => $columns,
    		)
    	);
    	wc_set_loop_prop( 'name', 'up-sells' );
    	wc_set_loop_prop( 'columns', apply_filters( 'woocommerce_upsells_columns', isset( $args['columns'] ) ? $args['columns'] : $columns ) );
    
    	$orderby = apply_filters( 'woocommerce_upsells_orderby', isset( $args['orderby'] ) ? $args['orderby'] : $orderby );
    	$order   = apply_filters( 'woocommerce_upsells_order', isset( $args['order'] ) ? $args['order'] : $order );
    	$limit   = apply_filters( 'woocommerce_upsells_total', isset( $args['posts_per_page'] ) ? $args['posts_per_page'] : $limit );
    
    	// Get visible upsells then sort them at random, then limit result set.
    	$upsells = wc_products_array_orderby( array_filter( array_map( 'wc_get_product', $product->get_upsell_ids() ), 'wc_products_array_filter_visible' ), $orderby, $order );
    	$upsells = $limit > 0 ? array_slice( $upsells, 0, $limit ) : $upsells;
    
    	wc_get_template(
    		'single-product/up-sells.php',
    		array(
    			'upsells'        => $upsells,
    
    			// Not used now, but used in previous version of up-sells.php.
    			'posts_per_page' => $limit,
    			'orderby'        => $orderby,
    			'columns'        => $columns,
    		)
    	);
    }
    Ответ написан
  • Как отредактировать страницу каталога Wordpress Woocommerce?

    @Gamelot
    Программист php
    При установке woo может создаваться страница Магазин. Обычно у нее адрес /shop
    На этой странице может размещаться либо шорткод (описаны здесь - https://woocommerce.com/document/woocommerce-short...), либо компонент элементора для работы с woo.

    Посмотреть страницу каталога магазина на woo можно также в его настройках. Там, где прописываеся url корзины, checkout и др.
    Ответ написан
    Комментировать
  • Woocommerce вывести кнопку добавить в корзину в нужном месте шаблона?

    @Gamelot
    Программист php
    Можно воспользоваться функцией woocommerce_template_single_add_to_cart(). Она использует глобальную переменную $product внутри себя. При этом также вылезет input с кол-вом заказываемого товара. Его можно скрыть на css. Для простого товара работает точно. Для других типов не проверял.

    <?php
    woocommerce_template_single_add_to_cart();
    ?>
    Ответ написан
    Комментировать