Изменить кнопку Woocommerce Add to Cart, используя хуки, чтобы влиять только внутри конкретного запроса, а не глобально - PullRequest
0 голосов
/ 09 февраля 2019

Я хочу перечислить все товары с определенным мета-значением, и эти товары должны иметь кнопку «Просмотреть товар» для простого товара / всех товаров вместо обычной кнопки «Добавить в корзину».Но когда я использую хук add_filter ('woocommerce_loop_add_to_cart_link'), он меняет кнопку добавления в корзину всех продуктов, перечисленных на сайте.

Мне нужно изменить кнопку добавления в корзину продуктов, перечисленных в этом запросетолько.И никакого другого экземпляра.

Код приведен ниже.Есть ли возможность обойти это?Заранее спасибо.

public function global_products_shortcode($atts)
{
        global $woocommerce_loop;
        extract( shortcode_atts(
               array(
                    'columns' => '4',
                    'posts_per_page' => '10',

               ),
               $atts
        ));

        $woocommerce_loop['columns'] = $columns;



        $args = array(

            'post_type' => 'product',
            'posts_per_page' => $posts_per_page,
            'meta_query' => array(
                                array(
                                'key' => '_global_field',
                                'value' => 'yes'
                                )
                            ),
        );

        $products = new WP_Query($args);
        ob_start();
        if ( $products->have_posts() ) :
            woocommerce_product_loop_start();
            while ( $products->have_posts() ) : $products->the_post();
            global $product, $post;


                wc_get_template_part( 'content', 'product' );


            endwhile;
            woocommerce_product_loop_end();

            else:
            do_action( "woocommerce_shortcode_products_loop_no_results", $atts );
            echo "<p>No results.</p>";
        endif;

        woocommerce_reset_loop();
        wp_reset_postdata();
  return '<div class="woocommerce columns-' . $columns . '">' . ob_get_clean() . '</div>';

}



function replacing_add_to_cart_button( $button, $product ) {
    $button_text = __("View product", "woocommerce");
    $button = '<a class="button" href="' . $product->get_permalink() . '">' . $button_text . '</a>';

    return $button;
}
add_filter( 'woocommerce_loop_add_to_cart_link', 'replacing_add_to_cart_button', 10, 2 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...