Я хочу перечислить все товары с определенным мета-значением, и эти товары должны иметь кнопку «Просмотреть товар» для простого товара / всех товаров вместо обычной кнопки «Добавить в корзину».Но когда я использую хук 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 );