Вместо этого попробуйте использовать этот специальный фильтр для кнопки добавления в корзину:
// Change loop add to cart ajax button to a linked button to single product pages
add_filter( 'woocommerce_loop_add_to_cart_link', 'replace_loop_add_to_cart', 20, 2 );
function replace_loop_add_to_cart( $html, $product ) {
$link = $product->get_permalink();
$text = __("Read More", "woocommerce");
return '<a href="' . $link . '" target="_blank" class="button alt add_to_cart_button">' . $text . '</a>';
}
А здесь для ссылки на продукт:
add_filter( 'woocommerce_before_shop_loop_item', 'replace_template_loop_product_link_open', 1 );
function replace_loop_product_link() {
remove_action( 'woocommerce_before_shop_loop_item','woocommerce_template_loop_product_link_open', 10 );
add_action ( 'woocommerce_before_shop_loop_item', 'new_loop_product_link_open', 10 );
}
function new_loop_product_link_open() {
global $product;
echo '<a href="' . esc_url( $product->get_permalink() ) . '" target="_blank" class="woocommerce-LoopProduct-link woocommerce-loop-product__link">';
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.
Но в вашем случае он может работать не так, как ожидалось, в зависимости от того, как реализована ваша пользовательская функциональность ajax. Поскольку проблема остается для продуктов, загружаемых через ajax, target="_blank"
необходимо также реализовать в соответствующем скрипте.
На данный момент никто не может помочь вам больше, поскольку мы не можем догадаться, как эта функциональность построена.