Я бы хотел, чтобы внешние / аффилированные продукты WooCommerce открывались в новой вкладке. Это будет касаться всех аспектов продукта: изображения, заголовка, кнопки «Купить сейчас» и страниц архива (категория продукта / теги). Все, что мне удалось найти, - это способ изменить кнопку «Купить сейчас», но никаких других решений для других областей, упомянутых ранее, нет. Другие решения предлагают внешнюю ссылку во всех нужных местах (изображение товара, название, кнопка «Купить сейчас», страницы архива), но ее нельзя открыть в новой вкладке.
Я пробовал кучу разных кодов, как уже упоминалось выше, все приводят к частичным решениям. Я верю, что если они могут быть объединены, это может работать. Но я не добился успеха.
add_action( 'template_redirect', 'redirect_external_products' );
function redirect_external_products() {
global $post;
if ( is_singular( 'product' ) && ! empty( $post ) && ( $product = wc_get_product( $post ) ) && $product->is_type( 'external' ) ) {
wp_redirect( $product->get_product_url() );
exit;
}
}
function custom_redirect() {
global $post;
if( is_single() ){
$external_link = get_post_meta( $post->ID, 'external_link', true );
if($external_link) {
echo "<script> window.open(".$external_link.", '_blank') </script>";
exit;
}
}
}
Я бы хотел, чтобы все партнерские / внешние ссылки открывались в новой вкладке. Это будет включать: изображение товара, название товара, кнопку «Купить сейчас», архив списка страниц (категория товара / теги).
Все предыдущие попытки будут открывать ссылки «Купить сейчас» только на новой вкладке, но изображение и заголовок по-прежнему будут перенаправлены на страницу отдельного продукта. Первый приведенный выше код делает свое дело, но не открывается в новой вкладке. Мои исследования показывают, что при использовании функции template_redirect таргетинг на ссылки невозможен.