Отображаем артикул на странице корзины в 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']->get_sku();
return $sku ? $title . sprintf(" (Артикул: %s)", $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 "Новый заголовок страницы";
}
}
По всем вопросам и отзывам просьба писать в комментарии ниже.
Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.
