Публикация в группе: Полезное для WordPress

Категории группы: Полезное

В этой статье, я хочу поделится с вами практическими примерами работы с WooCommerce. Давайте перейдем сразу к делу.
В содержании статьи, находятся задачи с которыми придется столкнуться разработчику, если он будет программировать верстку(html) под WooCommerce.

Содержание

  • 1. Работа с корзиной.
    • 1.1. Добавление товара в корзину.
    • 1.2. Получаем количество товаров в корзине.
    • 1.3. Получаем ссылку на страницу корзины.
    • 1.4. Как как узнать есть ли товар в корзине по его ИД?
  • 2. Работа с товаром.
    • 2.1 Получаем стоимость товара.
    • 2.2. Получаем артикул товара.
    • 2.3. Получаем изображения галереи товара.
    • 2.4. Настройка символа валюты.
  • 3. Работа со страницей заказа.
    • 3.1. Настройка полей.
    • 3.2. Добавляем чекбокс "согласен на обработку персональных данных", вместо стандартного текста.

1. Работа с корзиной.

1.1. Добавление товара в корзину.

Здесь все просто, нужно передать ИД товара.

global $woocommerce;
$woocommerce->cart->add_to_cart($productID);

1.2. Получаем количество товаров в корзине.

echo WC()->cart->get_cart_contents_count();

Данный метод вернет количество товаров в корзине.

1.3. Получаем ссылку на страницу корзины.

echo wc_get_cart_url();

Данный метод возвращает ссылку на страницу корзины, которая указывается в настройках WooCommerce.

1.4. Как как узнать есть ли товар в корзине по его ИД?

function sp_in_cart($productID){	
	global $woocommerce;

	foreach($woocommerce->cart->get_cart() as $key => $value ) {
        
		if(isset($value['product_id']) && !empty($value['product_id'])){
	        if($productID == $value['product_id']){
	            return true;
	        }
	    } else {
	    	return false;
	    }    

    }
}

С помощью этой функции мы можем проверить, есть ли определенный товар в корзине.

2. Работа с товаром.

2.1 Получаем стоимость товара.

Тут так же все просто как и с добавление товара. Просто нужно указать его ИД.

$product = new WC_Product($productID);
echo $product->get_price();

2.2. Получаем артикул товара.

Так же передаем ИД товара.

$product = new WC_Product($productID);
echo $product->get_sku();

2.3. Получаем изображения галереи товара.

Указываем ИД товара и получаем массив из ИД изображений. А дальше дело техники 🙂 Можно перебрать данный массив через цикл foreach и использовать wp_get_attachment_url для получения ссылки на изображение.

$product = new WC_Product($productID);
$attachmentIDs = $product->get_gallery_image_IDs();

2.4. Настройка символа валюты.

add_filter('woocommerce_currency_symbol', 'sp_currency_symbol', 10, 2);
function sp_currency_symbol( $currency_symbol, $currency ) {
	switch( $currency ) {
		case 'RUB': $currency_symbol = ' руб.'; break;
	}
	return $currency_symbol;
}

3. Работа со страницей заказа.

3.1. Настройка полей.

Можно использовать хуки WooCommerce. Но лучше всего с этим справится плагин Checkout Field Editor for WooCommerce.
С его помощью можно отключить ненужные поля при оформлении заказа.

3.2. Добавляем чекбок "согласен на обработку персональных данных", вместо стандартного текста.

В стандартном функционал WooCommerce нет чекбокса "согласен на обработку персональных данных", там просто текст. Но согласно 152-ФЗ, должен быть чекбокс. Данный код, вам в помощь.

function sp_add_checkout_privacy_policy() {
	woocommerce_form_field( 'privacy_policy', array(
	   'type'          => 'checkbox',
	   'class'         => array('form-row privacy'),
	   'label_class'   => array('woocommerce-form__label woocommerce-form__label-for-checkbox checkbox'),
	   'input_class'   => array('woocommerce-form__input woocommerce-form__input-checkbox input-checkbox'),
	   'required'      => true,
	   'default'	   => 1,
	   'label'         => 'Ваш текст',
	)); 
}
       
function sp_not_approved_privacy() {
    if ( ! (int) isset( $_POST['privacy_policy'] ) ) {
        wc_add_notice( __( 'Ваш текст' ), 'error' );
    }
}

add_action( 'woocommerce_review_order_before_submit', 'sp_add_checkout_privacy_policy', 9 );
add_action( 'woocommerce_checkout_process', 'sp_not_approved_privacy' );

 

2

Автор публикации

не в сети 2 месяца

spoot@bk.ru

84
Комментарии: 54Публикации: 26Регистрация: 09-03-2016Продаж/Покупок: 0/0