• Главная
  • Карта сайта
Не найдено

Главная Новости

14 полезных сниппетов для интернет-магазинов на Вукоммерс

Опубликовано: 06.09.2018

видео 14 полезных сниппетов для интернет-магазинов на Вукоммерс

Как изменять WooCommerce. Эпизод #4. Страница корзины

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


Оптимизация карточки товара интернет-магазина

Напомню, Вукоммерс — прекрасный плагин электронной торговли для Вордпресс, который позволяет без особых сложностей и абсолютно бесплатно превратить любой Вордпресс-сайт в полноценный интернет-магазин.

Все сниппеты традиционно размещаются в файле functions.php активной в данный момент темы или выносятся в отдельный плагин , если тема не постоянна.

1. Заменить «хлебные крошки» WooCommerce на крошки Yoast SEO

Yoast SEO — отличный плагин поисковой оптимизации с массой полезных функций, в т.ч. продвинутыми «хлебными крошками», которые можно задействовать вместо стандартных.

if ( ! function_exists( 'evolution_replace_breadcrumbs' ) ) : /** * Replace WooCommerce Breadcrumbs with Yoast breadcrumbs */ function evolution_replace_breadcrumbs() { remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20, 0); function evolution_yoast_breadcrumb() { if ( function_exists('yoast_breadcrumb') ) { yoast_breadcrumb('<nav class="woocommerce-breadcrumb">','</nav>'); } } } add_action( 'init', 'evolution_replace_breadcrumbs' ); endif;

2. Изменить количество товаров в строке

По-умолчанию в Вукоммерс отображается по четыре товара в строке, исправить это проще простого.

/** * Change number of products per row to 3 */ if (!function_exists('evolution_loop_columns') ) { function evolution_loop_columns() { return 3; // 3 Products in a row } } add_filter('loop_shop_columns', 'evolution_loop_columns');

3. Изменить количество сопутствующих продуктов

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

/** * WooCommerce Extra Feature * -------------------------- * * Change number of related products on product page * Set your own value for 'posts_per_page' * */ if (!function_exists('evolution_related_products_args') ) { function evolution_related_products_args( $args ) { $args['posts_per_page'] = 4; // 4 related products $args['columns'] = 4; // All four in a row return $args; } } add_filter( 'woocommerce_output_related_products_args', 'evolution_related_products_args' );

4. Изменить количество продуктов на странице

Иногда без этого никак.

/** * Custom Product Cols * @return 12 Products per Page */ if (!function_exists('evolution_loop_shop_per_page') ) { function evolution_loop_shop_per_page( $cols ) { $cols = 12; return $cols; } } add_filter( 'loop_shop_per_page', 'evolution_loop_shop_per_page', 20 );

5. Скрыть платные способы доставки, если доступна бесплатная доставка

Скрываем платные способы доставки на странице оформления заказа, если покупателю доступна бесплатная доставка.

/** * Hide shipping rates when free shipping is available. * Updated to support WooCommerce 2.6 Shipping Zones. * * @param array $rates Array of rates found for the package. * @return array */ if (!function_exists('evolution_hide_shipping_when_free_is_available') ) { function evolution_hide_shipping_when_free_is_available( $rates ) { $free = array(); foreach ( $rates as $rate_id => $rate ) { if ( 'free_shipping' === $rate->method_id ) { $free[ $rate_id ] = $rate; break; } } return ! empty( $free ) ? $free : $rates; } } add_filter( 'woocommerce_package_rates', 'evolution_hide_shipping_when_free_is_available', 100 );

6. Загрузить файлы CSS и JavaScript только на страницах магазина

Вукоммерс загружает свои файлы на всех страницах Вордпресс. В целях оптимизации нагрузки можно сделать так, чтобы файлы загружались только на страницах, имеющих отношение к магазину.

if (!function_exists( 'evolution_manage_woocommerce_styles' ) ) : /** * Optimize WooCommerce Scripts * Removes WooCommerce styles and scripts from non WooCommerce pages. */ function evolution_manage_woocommerce_styles() { //first check that woo exists to prevent fatal errors if ( function_exists( 'is_woocommerce' ) ) { //dequeue scripts and styles if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() && ! is_account_page() ) { wp_dequeue_style( 'woocommerce-layout' ); wp_dequeue_style( 'woocommerce-smallscreen' ); wp_dequeue_style( 'woocommerce-general' ); wp_dequeue_style( 'evolution-woostyles' ); wp_dequeue_script( 'wc_price_slider' ); wp_dequeue_script( 'wc-single-product' ); wp_dequeue_script( 'wc-add-to-cart' ); wp_dequeue_script( 'wc-cart-fragments' ); wp_dequeue_script( 'wc-checkout' ); wp_dequeue_script( 'wc-add-to-cart-variation' ); wp_dequeue_script( 'wc-single-product' ); wp_dequeue_script( 'wc-cart' ); wp_dequeue_script( 'wc-chosen' ); wp_dequeue_script( 'woocommerce' ); wp_dequeue_script( 'prettyPhoto' ); wp_dequeue_script( 'prettyPhoto-init' ); wp_dequeue_script( 'jquery-blockui' ); wp_dequeue_script( 'jquery-placeholder' ); wp_dequeue_script( 'fancybox' ); wp_dequeue_script( 'jqueryui' ); } } } add_action( 'wp_enqueue_scripts', 'evolution_manage_woocommerce_styles', 99 ); endif;

7. Сделать номер телефона необязательным к заполнению

По-умолчанию в Вукоммерс номер телефона покупателя обязателен к заполнению и исправить это никак нельзя. А вдруг у человека нет телефона, проблемы со слухом или он просто предпочитает общаться по электронной почте, например.

if (!function_exists( 'evolution_phone_no_pflicht' ) ) : /** * Make the phone number an optional entry * * @hooked woocommerce_billing_fields() * * @return filter */ function evolution_phone_no_pflicht( $address_fields ) { $address_fields['billing_phone']['required'] = false; return $address_fields; } add_filter( 'woocommerce_billing_fields', 'evolution_phone_no_pflicht', 10, 1 ); endif;

8. Показать экономию в процентах

Просто еще один из трюков психологического воздействия на покупателя.

if ( !function_exists( 'evolution_custom_sales_price' ) ) : /** * Show percent savings on sale - Only for WooCommerce version 3.0+ * * @add filter to products * * @return filter */ function evolution_custom_sales_price( $price, $regular_price, $sale_price ) { $percentage = round( ( $regular_price - $sale_price ) / $regular_price * 100 ).'%'; $percentage_txt = __(' Spare ', 'evolution' ).$percentage; $price = '<del>' . ( is_numeric( $regular_price ) ? wc_price( $regular_price ) : $regular_price ) . '</del> <ins>' . ( is_numeric( $sale_price ) ? wc_price( $sale_price ) . $percentage_txt : $sale_price . $percentage_txt ) . '</ins>'; return $price; } add_filter( 'woocommerce_format_sale_price', 'evolution_custom_sales_price', 10, 3 ); endif;

9. Добавить кнопки шаринга на страницы продуктов

Дайте своим покупателям возможность делиться ссылками на продукты в соцсетях. Например, чтобы вывести кнопки плагина Shariff, можно воспользоваться кодом ниже.

if (!function_exists( 'evolution_share_for_woocommerce' ) ) : /** * Implementing share buttons on the page of an individual product * * @hooked woocommerce_share() */ function evolution_share_for_woocommerce() { echo do_shortcode( '[[shariff]]' ); } add_action( 'woocommerce_share', 'evolution_share_for_woocommerce', 5 ); endif;

Другие кнопки подключаются аналогичным образом.

10. Удалить вкладки со страницы продукта

Иногда некоторые вкладки на страницах товара бывают лишними, скрыть их очень просто.

if (!function_exists( 'evolution_remove_product_tabs' ) ) : /** * Removing the product tabs of the description * * @hooked woocommerce_product_tabs() */ function evolution_remove_product_tabs( $tabs ) { unset( $tabs['description'] ); // Remove the description tab unset( $tabs['reviews'] ); // Remove the reviews tab unset( $tabs['additional_information'] ); // Remove the additional information tab return $tabs; } add_filter( 'woocommerce_product_tabs', 'evolution_remove_product_tabs', 98 ); endif;

11. Обновить корзину с помощью аякса

Очень удобная для покупателей функция «живого» обновления корзины.

<?php if (!function_exists( 'evolution_header_add_to_cart_fragment' ) ) : /** * Ensure cart contents update when products are added to the cart via AJAX * * @add_filter woocommerce_add_to_cart_fragments */ function evolution_header_add_to_cart_fragment( $fragments ) { ob_start(); ?> <a class="cart-contents" href="<?php echo WC()->cart->get_cart_url(); ?>" title="<?php _e( 'View your shopping cart' ); ?>"><?php echo sprintf (_n( '%d item', '%d items', WC()->cart->get_cart_contents_count() ), WC()->cart->get_cart_contents_count() ); ?> - <?php echo WC()->cart->get_cart_total(); ?></a> <?php $fragments['a.cart-contents'] = ob_get_clean(); return $fragments; } add_filter( 'woocommerce_add_to_cart_fragments', 'evolution_header_add_to_cart_fragment' ); endif;

12. Вывести ссылку на личный кабинет покупателя

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

<?php if ( is_user_logged_in() ) { ?> <a href="<?php echo get_permalink( get_option('woocommerce_myaccount_page_id') ); ?>" title="<?php _e('Mein Account','evolution'); ?>"><?php _e('My Account','woothemes'); ?></a> <?php } else { ?> <a href="<?php echo get_permalink( get_option('woocommerce_myaccount_page_id') ); ?>" title="<?php _e('Login / Register','evolution'); ?>"><?php _e('Login / Register','woothemes'); ?></a> <?php } ?>

13. Включить в уведомление администратору информацию о способе оплаты

После каждого заказа администратор магазина получает уведомление по электронной почте с краткой информацией по заказу. В нее можно включить и способ оплаты, например. Иногда это важно.

if (!function_exists( 'evolution_add_payment_method_to_admin_new_order' ) ) : /** * Adding the customer's payment method to the admin email * * @hooked woocommerce_email_after_order_table() */ function evolution_add_payment_method_to_admin_new_order( $order, $is_admin_email ) { if ( $is_admin_email ) { echo '<p><strong>Zahlungsart:</strong> ' . $order->payment_method_title . '</p>'; } } add_action( 'woocommerce_email_after_order_table', 'evolution_add_payment_method_to_admin_new_order', 15, 2 ); endif;

14. Изменить порядок полей на странице оформления заказа

Лишние поля можно скрыть при необходимости.

<?php if (!function_exists( 'evolution_reorder_woo_fields' ) ) : /** * Alter the order of fields in the checkout area, or remove them completely. * * @add_filter woocommerce_checkout_fields */ function evolution_reorder_woo_fields( $fields ) { //move these around in the order you'd like $fields2['billing']['billing_first_name'] = $fields['billing']['billing_first_name']; $fields2['billing']['billing_last_name'] = $fields['billing']['billing_last_name']; $fields2['billing']['billing_company'] = $fields['billing']['billing_company']; $fields2['billing']['billing_address_1'] = $fields['billing']['billing_address_1']; $fields2['billing']['billing_address_2'] = $fields['billing']['billing_address_2']; $fields2['billing']['billing_city'] = $fields['billing']['billing_city']; $fields2['billing']['billing_postcode'] = $fields['billing']['billing_postcode']; $fields2['billing']['billing_state'] = $fields['billing']['billing_state']; $fields2['billing']['billing_country'] = $fields['billing']['billing_country']; $fields2['billing']['billing_email'] = $fields['billing']['billing_email']; $fields2['billing']['billing_phone'] = $fields['billing']['billing_phone']; //just copying these (keeps the standard order) $fields2['shipping'] = $fields['shipping']; $fields2['account'] = $fields['account']; $fields2['order'] = $fields['order']; return $fields2; } add_filter( 'woocommerce_checkout_fields', 'evolution_reorder_woo_fields' ); endif;

Если не хотите копаться в коде Вордпресс, можно пойти другим путём — воспользоваться сервисом «1С-UMI» и  создать интернет магазин самому . Зарегистрируйтесь на сервисе и вы поймете, что сделать готовый интернет-магазин под ключ бесплатно, не прилагая особых усилий, действительно возможно.

По материалам сайта Noupe.com

Всё самое новое и интересное я публикую в своём Телеграм-канале . Подписывайтесь!

Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью

rss