Пачка полезных сниппетов для WooCommerce. Часть 5

Отображаем артикул на странице корзины в Woocommmerce

Добавление сниппета в файл functions.php вашей темы WordPress выведет артикул на странице корзины в вашем магазине:

add_filter( 'woocommerce_cart_item_name', 'add_sku_in_cart', 20, 3);

function add_sku_in_cart( $title, $values, $cart_item_key ) {<div style="float:right;width:350px;margin:0 0 10px 15px;">
<div id="yandex_rtb_R-A-187781-2"></div>
</div>
    $sku = $values['data']-&gt;get_sku();
    return $sku ? $title . sprintf(&quot; (Артикул: %s)&quot;, $sku) : $title;
}

Добавляем имя пользователя, сделавшего заказа, в тему email-уведомления

Добавление сниппета в файл functions.php вашей темы WordPress выведет в теме уведомления о новом заказе для администратора имя пользователя, сделавшего заказ.
Например: Тема: Новый заказ от Devise Group — Номер заказа #444

add_filter('woocommerce_email_subject_new_order', 'change_admin_email_subject', 1, 2);

function change_admin_email_subject( $subject, $order ) {
global $woocommerce;

$blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);

$subject = sprintf( 'Новый заказ от (# %s) от %s %s - %s', $order->id, $order->billing_first_name, $order->billing_last_name, $order->order_date );

return $subject;
}

Дополнительные товары на странице/в ряду

Добавление сниппета в файл functions.php вашей темы WordPress выведет сопутствующие товары (upsell) на страницу в 3 строки.

remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_upsell_display', 15 );
add_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_upsells', 15 );
if ( ! function_exists( 'woocommerce_output_upsells' ) ) {
    function woocommerce_output_upsells() {
        woocommerce_upsell_display( 3,3 ); // Выводим 3 товара в 3 строки
    }
}

Добавить произвольное поле на вкладку «вариативный товар»

Добавление сниппета в файл functions.php вашей темы WordPress выведет произвольное поле на вкладку Вариативный товар

//Выводим поля
add_action( 'woocommerce_product_after_variable_attributes', 'variable_fields', 10, 2 );
//JS для добавления полей для новых вариаций
add_action( 'woocommerce_product_after_variable_attributes_js', 'variable_fields_js' );
//Сохраняем вариативные поля
add_action( 'woocommerce_process_product_meta_variable', 'variable_fields_process', 10, 1 );
function variable_fields( $loop, $variation_data ) {
?>  
    <tr>
        <td>
            <div>
                    <label></label>
                    <input type="text" size="5" name="my_custom_field[]" value=""/>
            </div>
        </td>
    </tr>

<tr>
        <td>
            <div>
                    <label></label>
                  
            </div>
        </td>
    </tr>
<?php
}
function variable_fields_process( $post_id ) {
    if (isset( $_POST['variable_sku'] ) ) :
        $variable_sku = $_POST['variable_sku'];
        $variable_post_id = $_POST['variable_post_id'];
        $variable_custom_field = $_POST['my_custom_field'];
        for ( $i = 0; $i < sizeof( $variable_sku ); $i++ ) :
            $variation_id = (int) $variable_post_id[$i];
            if ( isset( $variable_custom_field[$i] ) ) {
                update_post_meta( $variation_id, '_my_custom_field', stripslashes( $variable_custom_field[$i] ) );
            }
        endfor;
    endif;
}

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

Добавление сниппета в файл functions.php вашей темы WordPress позволяет вывести «Товар уже в корзине» вместо кнопки «Добавить в корзину», а также изменить текст «Добавить в корзину» на странице товара.

/**
* Изменяем текст добавления в корзину на странице товара
*/
add_filter('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 __('Уже в корзине - Добавить снова?', 'woocommerce');
        }
    }
  
    return __('Добавить в корзину', '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 __('Уже в корзине', 'woocommerce');
        }
    }
  
    return __('Добавить в корзину', 'woocommerce');
}

Изменяем заголовок главной страницы магазина

Добавление сниппета в файл functions.php вашей темы WordPress позволит вам переименовать вашу главную страницу с Магазин на любое другое.

add_filter( 'woocommerce_page_title', 'woo_shop_page_title');

function woo_shop_page_title( $page_title ) {
  
    if( 'Магазин' == $page_title) {
        return "Новый заголовок страницы";
    }
}

По всем вопросам и отзывам просьба писать в комментарии ниже.

Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.

VN:F [1.9.22_1171]
Rating: 5.0/5 (6 votes cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
Scroll To Top