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

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

17.08.2021

95

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

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

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

  • Похожие записи
  • Комментарии
  • Вложения
Исчезающие сообщения woocommerce

Исчезающие сообщения woocommerce

У woocommerce есть встроенная система сообщений: при добавлении товара в корзину, при удалении товара из корзины, при различных ошибках. Но они появляются перед основным контентом, нарушая исходную верстку. Сделаем их Читать далее »

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

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

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

Атрибуты товара WC

Атрибуты товара WC

В интернет-магазине Woocommerce есть функционал атрибутов. Атрибуты товара — это дополнительные поля для различных значений. Атрибуты бывают 2-х типов: текстовый (text) и с выбором значения (select). Архив значения атрибута Для Читать далее »

/

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

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

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