/ Плагины / Различные наработки по Woocommerce

Различные наработки по Woocommerce

17.08.2021

286

Очередной сборник различных наработок для плагина Woocommerce.

Изменить вывод заголовка товара

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

Создание поля

// Поле Краткое название

add_action( 'woocommerce_product_options_general_product_data', 'shorttitle_custom_general_fields' );
add_action( 'woocommerce_process_product_meta', 'shorttitle_custom_general_fields_save' );

function shorttitle_custom_general_fields() {

	global $woocommerce, $post;

	echo '<div class="options_group">';

	woocommerce_wp_text_input( 
		array( 
			'id' => 'shorttitle_field', 
			'label' => __( 'Краткое название', 'woocommerce' ), 
			//'desc_tip' => 'true',
			//'description' => __( 'Краткое название', 'woocommerce' ),
			'type' => 'html'
		)
	);

	echo '</div>';

}

function shorttitle_custom_general_fields_save( $post_id ){

	// Text Field
	$woocommerce_text_field = $_POST['shorttitle_field'];
	if( !empty( $woocommerce_text_field ) )
		update_post_meta( $post_id, 'shorttitle_field', esc_attr( $woocommerce_text_field ) );

}

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

// Изменить вывод заголовка товара (в каталоге)
remove_action( 'woocommerce_shop_loop_item_title', 'woocommerce_template_loop_product_title' );
add_action( 'woocommerce_shop_loop_item_title', 'custom_woocommerce_template_loop_product_title', 99 );

function custom_woocommerce_template_loop_product_title() {
    global $post;

    $product = wc_get_product( $post->ID );
	$title = get_post_meta( $post->ID, 'shorttitle_field', true );
    if( $title ) {
        echo '<h2 class="woocommerce-loop-product__title">' . esc_html( $title ) . '</h2>';
    } else {
        echo '<h2 class="woocommerce-loop-product__title">' . esc_html( $product->get_title() ) . '</h2>';
    }
}


// Изменить вывод заголовка товара (в карточке товара)
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 );
add_action( 'woocommerce_single_product_summary', 'custom_woocommerce_template_single_product_title', 5 );
add_action( 'woocommerce_mobile_title_product', 'custom_woocommerce_template_single_product_title', 5 );

function custom_woocommerce_template_single_product_title() {
    global $post;

    $product = wc_get_product( $post->ID );
	$title = get_post_meta( $post->ID, 'shorttitle_field', true );
    if( $title ) {
        echo '<h1 class="product_title entry-title">' . esc_html( $title ) . '</h1>';
    } else {
        echo '<h1 class="product_title entry-title">' . esc_html( $product->get_title() ) . '</h1>';
    }
}

К сожалению нельзя переопределить вывод заголовка глобально во всех шаблонах (корзина, заказ и т.д.).

В корзине показывать цену со скидкой

По умолчанию в корзине показывается только финальная цена со скидкой. Чтобы показать старую зачеркнутую цену используем функцию:

add_filter( 'woocommerce_cart_item_price', 'bbloomer_change_cart_table_price_display', 30, 3 );
  
function bbloomer_change_cart_table_price_display( $price, $values, $cart_item_key ) {
   $slashed_price = $values['data']->get_price_html();
   $is_on_sale = $values['data']->is_on_sale();
   if ( $is_on_sale ) {
      $price = $slashed_price;
   }
   return $price;
}

Распространяется и на мини-корзину.

Поделиться в соц. сетях:

  • Похожие записи
  • Комментарии
  • Вложения
Несколько менеджеров магазина

Несколько менеджеров магазина

Предположим что мы делаем интернет-магазин оптовой компании нацеленной работу с уже имеющимися клиентами. Есть ряд менеджером к котором прикреплены те или иные клиенты. Как сделать так, чтобы заказы распределялись между Читать далее »

Акция 20% на каждый 3 и 30% на каждый 4 товар

Акция 20% на каждый 3 и 30% на каждый 4 товар

Поступила нестандартная задача, реализовать акцию 20% на каждый 3 и 30% на каждый 4 товар. Сложность заключалась в том что скидки 20% и 30% должны были действовать на товары начиная Читать далее »

Отзывы к товарам

Отзывы к товарам

Рассмотрим различные аспекты такого функционала WC как отзывы к товарам. Изображения в отзывах Плагин YITH WooCommerce Advanced Reviews (6000) добавляет в комментарии поле изображение (можно добавлять несколько) и заголовок. Также Читать далее »

Добавить комментарий

Пока нет комментариев. Будь первым!

Различные наработки по Woocommerce
Фильтр Ajax
Рекомендации для васФильтр AjaxOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.