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

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

17.08.2021

958

1

Очередной сборник различных наработок для плагина 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;
}

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

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

  • Похожие записи
  • Комментарии
  • Вложения
Подарочные сертификаты

Подарочные сертификаты

Рассмотрим такой инструмент маркетинга как подарочные сертификаты, в ракурсе продажи его электронной версии. PW WooCommerce Gift (10 000) Алгоритм следующий: создает новый тип товара PW Gift Card. В котором можно Читать далее »

Новинка (товар NEW полем)

Новинка (товар NEW полем)

Ранее были рассмотрены варианты добавления лэйбла New полуавтоматическим способом (последние созданные товары, либо по времени от текущего), либо назначением метки NEW. Здесь разберем как сделать данный функционал полем и какие Читать далее »

/
Сравнение товаров (Compare)

Сравнение товаров (Compare)

Сравнение товаров (Compare) нужно для сайта с товарами у которых есть некоторые технические характеристики. Это может быть как электроника, так и более простые вещи, например ламинат. Сделаем обзор плагинов посвященных Читать далее »

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

1 комментарий

  1. Полковник (настоящий)

    Бля, сегодня такую тёлку пёр!

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