Woocommerce - свой интернет магазин на Wordpress. Хуки и правки. Постоянно обновляется!

Woocommerce — свой интернет магазин на WordPress. Хуки и правки. Постоянно обновляется!

В данной статье мы соберем разные хуки и правки по изменению плагина Woocommerce для WordPress. Если у вас есть дополнительные очень просим прикреплять что делает правка и ее код в комментариях мы обязательно их добавим.

Делаем цену От в каталоге вариативному товару

в файл functions.php вашей темы добавляем

add_filter('woocommerce_variable_price_html', 'custom_variation_price', 10, 2);
function custom_variation_price( $price, $product ) {
$price = '';
if ( !$product->min_variation_price || $product->min_variation_price !== $product->max_variation_price ) {
$price .= '<span class="from">' . _x('От', 'min_price', 'woocommerce') . ' </span>';
$price .= woocommerce_price($product->get_price());
}
return $price;
}

Убираем слово Бесплатно в доставке

1 файл functions.php вашей темы добавляем
add_filter( 'woocommerce_cart_shipping_method_full_label', 'remove_local_pickup_free_label', 10, 2 );
function remove_local_pickup_free_label($full_label, $method){
$full_label = str_replace("(Бесплатно!)","",$full_label);
return $full_label;
}

Убираем вкладки на странице товара Отзывы Детали

в файл functions.php вашей темы добавляем

add_filter( 'woocommerce_product_tabs', 'woo_remove_product_tabs', 98 );
function woo_remove_product_tabs( $tabs ) {
unset( $tabs['description'] ); // Remove the description tab
unset( $tabs['reviews'] ); // Remove the reviews tab
unset( $tabs['additional_information'] ); // Remove the additional information tab
return $tabs;
}

Изменяем количество «сопутствующих товаров» в WooCommerce

в файл functions.php вашей темы добавляем:

add_filter( 'woocommerce_output_related_products_args', 'jk_related_products_args' );
function jk_related_products_args( $args ) {
$args['posts_per_page'] = 6; // количество "Похожих товаров"
$args['columns'] = 3; // количество колонок
return $args;
}

Строчка кода:
$args['posts_per_page'] = 6;
отвечает за количество «Похожих товаров» на странице. Если Вы установите цифровое значение в этой строчке 9, то соответственно получите 9 «похожих товаров» на странице.
Строчка ниже отвечает за количество колонок, в которых будут отображаться товары. В нашем примере стоит значение 3, это значит что будет 3 колонки. Если Вам нужно чтобы товары отображались в 4 колонки, установите значение 4.
$args['columns'] = 3;

Изменить количество товаров на странице каталога.

в файл functions.php вашей темы добавляем:

add_filter( 'loop_shop_per_page', create_function( '$cols', 'return 100;' ), 20 );

Вывод артикула товара в миниатюре на стр. категории.

add_action( 'woocommerce_after_shop_loop_item_title', 'shop_sku' );
function shop_sku(){
global $product;
echo '<span class="sku">Артикул: ' . $product->sku . '</span>';
}

После этого у каждой миниатюры товара в выдаче категории выводится его артикул.

Скрывает артикул и цену

if(is_product())
{
add_filter( 'wc_product_sku_enabled', '__return_false' );
}
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );

Добавляем дополнительную информацию в карте товара

в файл functions.php вашей темы добавляем:

add_action( 'woocommerce_single_product_summary', 'return_policy', 20 );
function return_policy() {
echo '<p id="rtrn">Товар сертифицирован.</p>';
}

Краткое описание к товарам

в файл functions.php вашей темы добавляем:

add_action( 'woocommerce_after_shop_loop_item_title', 'my_add_short_description', 9 );
function my_add_short_description() {
echo '<span class="title-description">' . the_excerpt() . '</span>
';
}

Превращаем магазин в каталог, убираем цену, кнопку купить

в файл functions.php вашей темы добавляем:
add_filter('woocommerce_get_price_html','members_only_price');
function members_only_price($price){
if(is_user_logged_in() ){
return $price;
}
else {
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
}
}

Удалить конкретный товар из каталога

в файл functions.php вашей темы:

function woo_custom_pre_get_posts_query( $q ) {
if ( ! $q->is_main_query() ) return;
if ( ! $q->is_post_type_archive() ) return;
if ( ! is_admin() && is_shop() ) {
$q->set( 'tax_query', array(array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array( 'shoes' ), // Don't display products in the shoes category on the shop page
'operator' => 'NOT IN'
)));
}
remove_action( 'pre_get_posts', 'custom_pre_get_posts_query' );
}
add_action( 'pre_get_posts', 'woo_custom_pre_get_posts_query' );

Переименовываем Home на Главную

в файл functions.php вашей темы добавляем:

add_filter( 'woocommerce_breadcrumb_defaults', 'jk_change_breadcrumb_home_text' );
function jk_change_breadcrumb_home_text( $defaults ) {
// Изменит текст 'Home' на 'Главная'
$defaults['home'] = 'Главная';
return $defaults;
}

Меняем местами описание товара и цену.

в файл functions.php вашей темы добавляем:

remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10);
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20);
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 20);
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 10);
function HB_woocommerce_template_dimensions(){ //Добавим функцию вызова панельки с размерами и весом
global $woocommerce, $post, $product;
$product->list_attributes();
}
add_action( 'woocommerce_single_product_summary', 'HB_woocommerce_template_dimensions', 15); //Поставим панельку после краткого описания

Как убрать похожие товары (Removing “Related Products” From WooCommerce )

в файл functions.php вашей темы добавляем:

remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20);

Исключаем определенную категорию товара из каталога вместо transport пишем слой ярлык категории

в файл functions.php вашей темы добавляем:

add_filter( 'get_terms', 'get_subcategory_terms', 10, 3 );
function get_subcategory_terms( $terms, $taxonomies, $args ) {
$new_terms = array();
if ( in_array( 'product_cat', $taxonomies ) && ! is_admin() && is_shop() ) {
foreach ( $terms as $key => $term ) {
if ( ! in_array( $term->slug, array( 'transport' ) ) ) {
$new_terms[] = $term;
}
}
$terms = $new_terms;
}
return $terms;
}

Переименовать кнопку добавить в корзину

в файл functions.php вашей темы добавляем:

add_filter('single_add_to_cart_text', 'woo_custom_cart_button_text');
function woo_custom_cart_button_text() {
return __('Buy Now', 'woocommerce');
}

Показать «Продукт уже в Корзине» вместо кнопки «Добавить в корзину»

в файл functions.php вашей темы добавляем:

add_filter( 'woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text' );
function woo_custom_cart_button_text() {
global $woocommerce;
foreach($woocommerce->cart->get_cart() as $cart_item_key => $values ) {
$_product = $values['data'];

if( get_the_ID() == $_product->id ) {
return __('Already in cart - Add Again?', 'woocommerce');
}
}
return __('Add to cart', 'woocommerce');
}

add_filter( 'add_to_cart_text', 'woo_archive_custom_cart_button_text' );
function woo_archive_custom_cart_button_text() {
global $woocommerce;
foreach($woocommerce->cart->get_cart() as $cart_item_key => $values ) {
$_product = $values['data'];
if( get_the_ID() == $_product->id ) {
return __('Already in cart', 'woocommerce');
}
}
return __('Add to cart', 'woocommerce');
}

Переименовать кнопку в корзине Перейти к оформлению

в файл functions.php вашей темы добавляем:
function woocommerce_button_proceed_to_checkout() {
$checkout_url = WC()->cart->get_checkout_url();
?>
<!--?php _e( 'Новое название кнопки' ); ?-->
<!--?php <br ?--> }

Убираем краткое описание товара со страниц товаров

в файл functions.php вашей темы добавляем:
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20 );

Добавляем какое то слово пред ценой в карточки товара

в файл стилей просто допишите
.woocommerce div.product p.price:before {
content: "Цена: ";
color: #000;
font-size: 30px;
}

Выводим картинку рубрики на странице рубрики

в файл functions.php вашей темы добавляем:
add_action( 'woocommerce_archive_description', 'woocommerce_category_image', 2 );
function woocommerce_category_image() {
if ( is_product_category() ){
global $wp_query;
$cat = $wp_query->get_queried_object();
$thumbnail_id = get_woocommerce_term_meta( $cat->term_id, 'thumbnail_id', true );
$image = wp_get_attachment_url( $thumbnail_id );
if ( $image ) {
echo '<img class="category-product-image" src="' . $image . '" alt="'.$cat->name.'" />';
}
}
}

Выводим атрибуты в каталоге

в файл functions.php вашей темы добавляем:
add_action( 'woocommerce_after_shop_loop_item_title', 'cj_show_dimensions', 11 );
function cj_show_dimensions() {
global $product;
$product->list_attributes();
}

Выводит Полное описание товара из таба, под кнопку добавить в корзину

в файл functions.php вашей темы добавляем:
function woocommerce_template_product_description() {
woocommerce_get_template( 'single-product/tabs/description.php' );
}
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_product_description', 80 );

Отображаем Артикул На Странице Корзины В Woocommmerce

в файл functions.php вашей темы добавляем:
add_filter( 'woocommerce_cart_item_name', 'add_sku_in_cart', 20, 3);
function add_sku_in_cart( $title, $values, $cart_item_key ) {
$sku = $values['data']->get_sku();
return $sku ? $title . sprintf(" (Артикул: %s)", $sku) : $title;
}

Подытог заменить на сумма

в файл functions.php вашей темы добавляем:
add_filter('gettext', 'translate_text');
add_filter('ngettext', 'translate_text');
function translate_text($translated) {
$translated = str_ireplace('Подытог', 'Сумма', $translated);
return $translated;
}

Вывод веса в каталоге

в файл functions.php вашей темы добавляем:

function skyverge_shop_display_skus() {
global $product;
if ( $product->has_weight() ) {
echo '<div class="product-meta"><span class="product-meta-label">Weight:</span> ' . $product->get_weight() . ' ' . esc_attr( get_option( 'woocommerce_weight_unit' ) ) . '</div>';
}
}
add_action( 'woocommerce_after_shop_loop_item', 'skyverge_shop_display_skus', 9 );

Источник: Юрий Соколов

Вот и все, если Вы хотите «поблагодарить» наше IT сообщество — у вас есть такая возможность: справа есть варианты для пожертвований на развитие портала. Или поделитесь статьей в ваших соц.сетях через сервис ниже.

2
Отправить ответ

Please Login to comment
Войти с помощью: 
2 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
1 Comment authors
Леонид Шаламов Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
trackback

[…] мы публиковали — множество хуков и модификаций для вашего Woocommerce магазина. Вот вторая часть. Обязательно сохраните — […]

Леонид Шаламов
Member

Здравствуйте.

Подскажите,как убрать краткое описание товара из категории (режим список)?

Хочу разместить информацию,в кратком описании,только для карточки товара.

Тема Sellya

Спасибо.

Authorization
*
*
Войти с помощью: 
Registration
*
*
*
Войти с помощью: 

12 + 20 =

Password generation