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

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

HIT

17.08.2021

1226

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;
}

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

[site-socialshare]
  • Похожие записи
  • Комментарии
  • Вложения
Метод изменения шаблонов woocommerce

Метод изменения шаблонов woocommerce

В данной статье будет рассмотрен метод изменения шаблонов плагина Woocommerce. Разделение шаблонов категории и товара Первым делом надо разделить общий шаблон woocommerce.php на woocommerce-product.php и woocommerce-category.php. Делаем это простой проверкой: Читать далее »

Методы доставки по городам

Методы доставки по городам

Стандартные средства настройки зоны доставки предоставляют на выбор страны а также ограничивают зону почтовыми индексами. Но на практике это не удобно, т.к. пользователь зачастую не знает своего индекса и не Читать далее »

Отключить кнопку Купить (чекбокс)

Отключить кнопку Купить (чекбокс)

Сделаем возможность у некоторых товаров отключать кнопку купить. Добавляем поле (чекбокс) Скрываем кнопку Добавить в корзину в карточке товара Изменяем кнопку В корзину в категориях Тут не получится отключить хуком, Читать далее »

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

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

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

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

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