Убираем тег WooCommerce Generator
function my_woocommerce_loaded_function() { global $woocommerce; // убираем тег WC generator из секции <head> remove_action( 'wp_head', array( $woocommerce, 'generator' ) ); } // вызываем только после того, как woocommerce полностью загрузился add_action( 'woocommerce_init', 'my_woocommerce_loaded_function' ); <div style="float:right;width:350px;margin:0 0 10px 15px;"> <div id="yandex_rtb_R-A-187781-2"></div> </div>
Исключаем категорию со страницы магазина
<?php /** * Этот код необходимо добавить в файл functions.php вашей темы **/ add_filter( 'pre_get_posts', 'custom_pre_get_posts_query' ); function custom_pre_get_posts_query( $q ) { if ( ! $q->is_main_query() ) return; if ( ! $q->is_post_type_archive() ) return; $q->set( 'tax_query', array(array( 'taxonomy' => 'product_cat', 'field' => 'slug', 'terms' => array( 'tshirts' ), 'operator' => 'NOT IN' ))); remove_filter( 'pre_get_posts', 'custom_pre_get_posts_query' ); } ?>
Отправляем письмо от покупателя после выполнения заказа
add_action( 'woocommerce_order_status_completed', 'custom_send_email_from_customer' ); function custom_send_email_from_customer( $order_id ) { $order = new WC_Order( $order_id ); $headers = 'From: ' . $order->billing_first_name . ' ' . $order->billing_last_name . ' <' . $order->billing_email . '>' . "\r\n"; wp_mail( 'someone@somesite.com', 'Тема', 'Сообщение', $headers ); }
Изменяем изображение-заглушку для товара с отсутствующей картинкой
/* * Этот код необходимо добавить в файл functions.php вашей темы. Изменяем путь изображения с filename/path на ваше собственное * **/ add_filter('woocommerce_placeholder_img_src', 'custom_woocommerce_placeholder_img_src'); function custom_woocommerce_placeholder_img_src( $src ) { $upload_dir = wp_upload_dir(); $uploads = untrailingslashit( $upload_dir['baseurl'] ); $src = $uploads . '/2012/07/thumb1.jpg'; return $src; }
Добавляем произвольное поле (в заказ) в письмо о заказе
/** * Добавляем поле в письма о заказеAdd the field to order emails **/ add_filter('woocommerce_email_order_meta_keys', 'my_woocommerce_email_order_meta_keys'); function my_woocommerce_email_order_meta_keys( $keys ) { $keys['Как вы узнали о нас?'] = 'hear_about_us'; return $keys; }
Задаем страну по-умолчанию для страницы оплаты
/** * Управление страной по-умолчанию * * Этот код необходимо добавить в файл functions.php вашей темы */ add_filter( 'default_checkout_country', 'change_default_checkout_country' ); add_filter( 'default_checkout_state', 'change_default_checkout_state' ); function change_default_checkout_country() { return 'XX'; // код страны } function change_default_checkout_state() { return 'XX'; // код штата (если необходимо) }
Скрываем количество на складе, оставляя статус «В наличии/Нет в наличии»
Некоторым магазинам возможно понадобиться скрыть точнее количество единиц на складе. Этот сниппет скроет точное количество остатка, однако всё так же будет отображать состояния «В наличии/Нет в наличии». Скопируйте и вставьте код ниже в файл functions.php вашей темы:
// Хук add_filter( 'woocommerce_get_availability', 'custom_override_get_availability', 1, 2); // Наша хукнутая функция $availablity проходит через фильтр function custom_override_get_availability( $availability, $_product ) { if ( $_product->is_in_stock() ) $availability['availability'] = __('В наличии', 'woocommerce'); return $availability; }
Разрешаем выполнение шорткодов в кратком описании товара
Этот код необходимо добавить в файл functions.php вашей темы
if (!function_exists('woocommerce_template_single_excerpt')) { function woocommerce_template_single_excerpt( $post ) { global $post; if ($post->post_excerpt) echo '<div itemprop="description">' . do_shortcode(wpautop(wptexturize($post->post_excerpt))) . '</div>'; } }
Перезаписываем поля оплаты
add_filter( 'woocommerce_billing_fields', 'custom_woocommerce_billing_fields' ); function custom_woocommerce_billing_fields( $fields ) { // Перезаписываем единичное поле $fields['billing_first_name']['label'] = 'Ваше поле'; // Перезаписываем единичное обязательное значение $fields['billing_first_name']['required'] = false; // Перезаписываем всё $fields['billing_postcode'] = array( 'label' => __('Индекс', 'woothemes'), 'placeholder' => __('Индекс', 'woothemes'), 'required' => true, 'class' => array('form-row-last update_totals_on_change') ); /** * Можно также перезаписать поля - billing_first_name, billing_last_name, billing_company, billing_address_1, billing_address_2, billing_city, billing_postcode, billing_country, billing_state, billing_email, billing_phone */ return $fields; }
Изменяем текст подсказки для примечаний к заказу
add_filter('woocommerce_checkout_fields', 'custom_woocommerce_checkout_fields'); function custom_woocommerce_checkout_fields( $fields ) { $fields['order']['order_comments']['placeholder'] = 'Ваше собственное примечание к заказу'; return $fields; }
Делаем поле адреса шире
add_filter('woocommerce_billing_fields', 'custom_woocommerce_billing_fields'); function custom_woocommerce_billing_fields( $fields ) { $fields['billing_address_1']['class'] = array( 'form-row-wide' ); $fields['billing_address_2']['class'] = array( 'form-row-wide' ); return $fields; }
Задаем собственную ссылку для перенаправления после добавления в корзину
add_filter('add_to_cart_redirect', 'custom_add_to_cart_redirect'); function custom_add_to_cart_redirect() { return get_permalink(get_option('woocommerce_checkout_page_id')); // Заменяем на свою сссылку }
По всем вопросам и отзывам просьба писать в комментарии ниже.
Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.