Загрузка...
Ноя 24, 2017 13:46 Storky
Наиболее частый случай - закрытие элемента по клику за его границами.
Как закрыть меню по клику вне при помощи JavaScript При помощи делегирования Один из самых простых и безопасных способов - создать функцию, выбрасывающую событие по клику вне элемента.
function detectClickOutsideMenu(selector, eventName) {
$(document).on('click', function(event) {
if (!$(event.target).closest(selector).length) {
$('body').trigger(eventName);
}
});
}
Подробнее...
Загрузка...
Окт 30, 2017 16:35 inprocess
Чтобы добавить файл в письмо WooCommerce, воспользуемся фильтром:
add_filter ( 'woocommerce_email_attachments' , 'attachment_in_email' , 10 , 3 ) ;
function attachment_in_email ( $attachments = array () , $id , $order ){
//выбираем, какие письма будут с вложением
if ( $id == 'customer_on_hold_order' || $id == 'new_order' ){
//путь к файлу
$attachments = array (get_template_directory(). '/schet.xlsx' ) ;
}
return $attachments ;
}
Подробнее...
Загрузка...
Окт 20, 2017 09:45 inprocess
В некоторых случаях необходимо убрать кнопку "в корзину" в WooCommerce, чтобы интернет-магазин стал каталогом товаров.
Для этого необходимо добавить в functions.php следующий код:
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
Первая функция удаляет кнопку "Добавить в корзину" со страниц категорий товаров, вторая функция удаляет кнопку со страницы товара.
Данный код необходимо вставить в файл темы functions.php (например вначале файла, после открывающего тега <?php, либо в конец), его можно отредактировать из админки WordPress (пункт меню Внешний вид->Редактор).
Загрузка...
Сен 15, 2017 16:12 Storky
Как узнать, является ли объект обернутым в Jquery?
function(element){
var $element = null;
if(element instanceof jQuery){
$element = element;// если объект уже обернут в Jquery, то нет смысла делать это повторно
}else{
$element = $(element);
}
}
Это полезно, когда в функцию может попасть как обернутый элемент, так и не обернутый, например из:
$('ul').find('li');
Benchmark
Загрузка...
Сен 5, 2017 12:36 inprocess
Для добавление мета-полей к медиафайлам в WordPress понадобится следующий код:
function meta_img_price_edit ( $form_fields , $post ) {
$form_fields [ 'product_price' ] = array (
'label' => 'Цена' ,
'input' => 'text' ,
'value' => get_post_meta( $post -> ID , 'product_price' , true ) ,
) ;
//если необходимо добавить не текстовое поле, а, например, radio
$product_izmerenie = get_post_meta( $post -> ID , 'product_izmerenie' , true ) ;
$checked_s = '' ;
$checked_m = '' ;
if ( $product_izmerenie == 'metr' ){
$checked_m = 'checked' ;
}
if ( $product_izmerenie == 'sht' ){
$checked_s = 'checked' ;
}
$form_fields [ 'product_izmerenie' ] = array (
'label' => 'Единица<br> измерения' ,
'input' => 'html' ,
'html' => "<input id='izmerenie-sht' $checked_s type='radio' name='attachments[ $post -> ID ][product_izmerenie]' value='sht'><label for='izmerenie-sht'>штука</label><Br>
<input id='izmerenie-metr' type='radio' $checked_m name='attachments[ $post -> ID ][product_izmerenie]' value='metr'><label for='izmerenie-metr'>метр погонный</label>"
) ;
return $form_fields ;
}
add_filter( 'attachment_fields_to_edit' , 'meta_img_price_edit' , 10 , 2 ) ;
//сохранение значений
function meta_img_price_save ( $post , $attachment ) {
if ( isset ( $attachment [ 'product_price' ] ) )
update_post_meta( $post [ 'ID' ] , 'product_price' , $attachment [ 'product_price' ] ) ;
if ( isset ( $attachment [ 'product_izmerenie' ] ) )
update_post_meta( $post [ 'ID' ] , 'product_izmerenie' , $attachment [ 'product_izmerenie' ] ) ;
return $post ;
}
add_filter( 'attachment_fields_to_save' , 'meta_img_price_save' , 10 , 2 ) ;
Подробнее...
Загрузка...
Авг 31, 2017 12:49 inprocess
Пример кода, как организовать страницу настроек плагина или темы WordPress в виде вкладок. 1. Добавляем саму страницу настроек:
add_action( 'admin_menu', 'settings_page_init' );
function settings_page_init() {
add_options_page( 'Настройки калькулятора', 'Калькулятор', 'edit_theme_options', 'kalkulator-settings', 'settings_page' );
}
Подробнее...
Загрузка...
Июл 25, 2017 13:49 inprocess
Чтобы добавить столбец, например в категории постов, нужно воспользоваться фильтром manage_edit-{название таксономии}_columns:
function my_custom_taxonomy_columns( $columns )
{
$columns['my_term_id'] = 'ID категории';
return $columns;
}
add_filter('manage_edit-category_columns' , 'my_custom_taxonomy_columns');
Этот код добавит столбец в конец таблицы. Подробнее...
Загрузка...
Май 25, 2017 13:41 inprocess
Для того, чтобы вывести любой атрибут товара, например на странице каталога товаров, необходимо использовать следующий код:
global $product;
echo $product->get_attribute('razmery');
Подробнее...
Загрузка...
Май 25, 2017 13:08 inprocess
Поиск woocommerce по умолчанию ищет по заголовку товара и его описанию. Для того, чтобы поиск смог искать по артикулу, атрибутам товара и любым другим мета-данным (например по цене товара) нужно установить плагин Relevanssi . Он также умеет делать поисковую выдачу более релевантной запросу, чем стандартный поиск WooCommerce.
Для того, чтобы настроить поиск по товарам и категориям WooCommerce перейдем в настройки плагина ( меню настройки->Relevanssi):
Подробнее...
Загрузка...
Мар 14, 2017 18:09 inprocess
Скорость загрузки сайта - это один из факторов ранжирования поисковых систем. И чем быстрее загружается сайт - тем лучше.
Проверить, насколько быстр ваш сайт, можно с помощью сервиса Google PageSpeed Insights .
Хорошая скорость загрузки - если сайт находится в зеленой зоне.
Подробнее...