• Как отсортировать массив терминов таксономии по значению поля?

    Yastr
    @Yastr Автор вопроса
    При помощи Анатолия пришел к простому решению.
    function attrName_to_termMetaOrder() {
        $terms = get_terms(array(
            'hide_empty'  => 0, 
            'order'       => 'ASC',
            'taxonomy'    => 'pa_proizvoditelnost',
            'pad_counts'  => 1
        ));
    
        if (!empty($terms) && !is_wp_error($terms)){
            foreach ($terms as $term) {
                update_term_meta($term->term_id, 'order_pa_proizvoditelnost', intval($term->name), "");
            }
        }
    }
    Ответ написан
    2 комментария
  • Как открыть товары в новой вкладке?

    @cema93
    WordPress разработчик
    Для этого достаточно добавить в файл functions.php вашей темы:
    /* Open Products in New Tab Woocommerce-DevelopingSense */
    remove_action( 'woocommerce_before_shop_loop_item','woocommerce_template_loop_product_link_open', 10 );
    // add a hook to my custom function
    add_action ( 'woocommerce_before_shop_loop_item', 'ami_function_open_new_tab', 10 );
    function ami_function_open_new_tab() {
    echo '<a target="_blank" href="' . get_the_permalink() . '" class="woocommerce-LoopProduct-link">';
    }

    Источник: https://www.developingsense.com/blog/open-woocomme...
    Ответ написан
    2 комментария
  • Как получить критерий сортировки в общем цикле?

    trampick
    @trampick
    Веб-разработчик
    А теперь ВОПРОС: Как мне, когда я нахожусь в основном цикле вывода товаров или перед ним, узнать была ли сортировка по умолчанию (default) или пользователь что-то выбрал?
    - 1 вариант, посмотреть $_REQUEST. Когда используется сортировка то, там что то есть.
    - 2 вариант посмотреть global wp_query при разной сортировке, узнать что там меняется.

    Тут нужно прикинуть насколько много товаров в каждой категории и сколько категорий. Я подскажу самый легкий способ реализации через кастомные поля. Для каждой карточки товара нужно создавать кастомное поле с названием 'order_$term_id'. Т.е. в зависимости от количество рубрик в которых находится товар, будет количество таких полей. Можно написать скрипт который сам будет создавать эти поля в зависимости от количества выбранных категорий. В эти поля нужно проставлять числа позиций. К примеру у футболок будет число от 0 до 100, у шорт от 100 до 200 и т.д. Здесь не принципиально и нужно делать как нужно. Можно всем шортам проставить одно число или разное в зависимости нужно ли сортировать дополнительно внутри группы шорт.
    Получается что у всех карточек категории с id 16 будет кастомное поле order_16 с значениями внутри. Важно что бы хотя бы 0 там стоял.
    Ну и последним шагом нужно находясь в категории перехватывать запрос wp_query и изменять сортировку
    $args = array(
       'meta_key' => 'order_16',
       'orderby' => 'meta_value_num',
       'order' => 'ASC',
     );

    add_action( 'pre_get_posts', 'modify_main_query' );
    function filters_modify_main_query( $query ) {
    
    	return $query;
    }

    Делать это нужно, если конечно в $_REQUEST в ячейки сортировки нет ничего.
    Ответ написан
    2 комментария
  • Почему ошибка останавливает выполнение других скриптов?

    @BorisKorobkov
    Web developer
    Почему ошибка останавливает выполнение других скриптов?

    Вспомните мультфильм "Клад кота Леопольда". Там надо было сделать "пять шагов на север от старой березы", то есть
    1. найти старую березу
    2. определить север
    3. сделать 5 шагов

    Если старая береза не найдена, то последующие действия не имеют смысла.
    Так и в js.

    Я хочу, чтобы ниже подключенные файлы всегда исполнялись.

    https://habrahabr.ru/company/mailru/blog/282149/
    Ответ написан
    Комментировать
  • Как при добавлении товара на сайт, отправлять письмо на указанный email (WP + WooCommerce)?

    @aarty20
    Front-end / Wordpress developer
    Как перестанете быть новичком: у WP есть хук 'save_post', вот к нему можно прицепить функцию отправки писем.
    То есть при сохранение поста вы проверяете таксономию (у WooCommerce это products), если был сохранен товар из таксономии продукты, а не посты и что угодно, отправляете письмо какое вам будет угодно. :)
    Ответ написан
    Комментировать