• Почему не работает remove_action?

    @5465
    Возможно, вы получаете дубликат, потому что вы удаляете и добавляете действия в разных хуках, а затем добавляете новое действие в другой хук. Это может привести к тому, что действия, которые вы удалили, все еще срабатывают, потому что вы удалили их в другом хуке.

    Попробуйте удалить действия в одном хуке, а затем добавить новое действие в этом же хуке. Например, попробуйте такой код:

    add_action( 'woocommerce_before_shop_loop_item_title', 'maudern_remove_product_badges_wrapper', 5 );
    function maudern_remove_product_badges_wrapper() {
    remove_action( 'woocommerce_before_shop_loop_item_title', 'maudern_product_badges_wrapper_open', 5 );
    remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_show_product_loop_sale_flash', 6 );
    remove_action( 'woocommerce_before_shop_loop_item_title', 'maudern_product_badges_wrapper_close', 8 );
    add_action( 'woocommerce_before_shop_loop_item_title', 'maudern_add_product_badges_wrapper', 5 );
    }
    
    function maudern_add_product_badges_wrapper() {
    echo '<div class="wrap">';
    maudern_product_badges_wrapper_open();
    woocommerce_show_product_loop_sale_flash();
    maudern_product_badges_wrapper_close();
    echo '</div>';
    }


    Этот код удаляет действия в одном хуке и добавляет новое действие в этом же хуке. Он также использует две отдельные функции для удаления и добавления действий.
    Ответ написан
    Комментировать
  • Как сделать скошенные углы с обводкой и прозрачным фоном?

    MrDecoy
    @MrDecoy Куратор тега CSS
    Верставший фронтендер
    Ответ написан
    Комментировать
  • Как подключить AJAX к кнопке добавления товара на главной странице?

    vladchv
    @vladchv
    WordPress Developer
    Создайте свой loop, выведите товары через цикл wp_query.
    Код для кнопки будет таким:
    <?php do_action( 'woocommerce_after_shop_loop_item' ); ?>

    Выше по коду у родителя должен быть класс "woocommerce".

    Пример:
    <?php
            $args = array(
                'post_type' => 'product',
                'posts_per_page' => 10,
                'tax_query' => array(
                  array(
                    'taxonomy' => 'product_visibility',
                    'field'    => 'name',
                    'terms'    => 'featured',
                   ),
                )
            );
            $loop = new WP_Query( $args );
            if ( $loop->have_posts() ) {
                while ( $loop->have_posts() ) : $loop->the_post(); ?>
    
                    <div class="my-button"><?php do_action( 'woocommerce_after_shop_loop_item' ); ?></div>
    
                <?php endwhile;
            } else {
                echo  'Товаров нет';
            }
            wp_reset_postdata(); ?>
    Ответ написан
    Комментировать
  • Кнопка очистки корзины в woocimmerce?

    Punkie
    @Punkie
    Кнопка:
    <form class="clear-cart" action="<?php echo esc_url( wc_get_cart_url() ); ?>" method="post"><button type="submit" onclick='javascript:if(!confirm("Удалить все товары из корзины?")) {return false;}' class="button" name="clear-cart">Очистить корзину</button></form>

    - обязательно в теге form. Проследите ,чтобы form не вложился в другой form

    Код для functions.php:

    add_action('init', 'woocommerce_clear_cart_url');
    function woocommerce_clear_cart_url() {
        global $woocommerce;
        if( isset($_REQUEST['clear-cart']) ) {
            $woocommerce->cart->empty_cart();
        }
    }


    Скопировал из своего текущего проекта - всё работает.
    Ответ написан
    1 комментарий
  • Как добавить meta description использя Advanced Custom Fields?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Здравствуйте! А в чём проблема-то?
    Вы можете совершенно спокойно ровно этот же код использовать в header.php (ну или где там у вас лежит meta description).

    // предположим, header.php
    // какое-то содержание
    // ...
    <?php 
    $acfFields = get_fields();
    $metaDescriptionValue = $acfFields['about'] ? $acfFields['about'] : 'Meta Description по умолчанию';
    ?>
    <meta name="description" content="<?= $metaDescriptionValue; ?>">
    // ...
    // остальное содержание


    get_field и get_fields замечательно работают даже вне loop.
    Ответ написан
    Комментировать