<?php
if ( ! function_exists( 'cliff_primary_site_always_the_canonical' ) ) {
/**
* Always have www.primary-site.com as the canonical URL.
*
* If site is loaded from www.example.com, for example.
*
* @link https://developer.wordpress.org/reference/functions/wp_get_canonical_url/
* @link https://kb.yoast.com/kb/canonical-urls-in-wordpress-seo/#code
*
* @param string $canonical_url
*
* @return string
*/
function cliff_primary_site_always_the_canonical( $canonical_url ) {
// HTTP_HOST does not contain primary-site domain
if ( false === strpos( $_SERVER['HTTP_HOST'], 'primary-site.com') ) {
$canonical_url = str_replace( $_SERVER['HTTP_HOST'], 'www.primary-site.com', $canonical_url );
}
return $canonical_url;
}
}
add_filter( 'get_canonical_url', 'cliff_primary_site_always_the_canonical' );
add_filter( 'wpseo_canonical', 'cliff_primary_site_always_the_canonical' );
if ( ! function_exists( 'cliff_example_add_to_cart_url' ) ) {
/**
* If site is loaded from www.example.com, change the Add To Cart button link to something we confirmed works, like
* the Cart URL with the add-to-cart query param.
*
* @see \is_example()
* @see \WC_Product_Simple::add_to_cart_url()
* @see \vc_gitem_template_attribute_woocommerce_product_link()
* @see \wc_get_cart_url()
*
* @param string $url A URL string that already has 'add-to-cart' query param, if it should.
* @param WC_Product $the_class A class that extends this class, such as WC_Product_Simple.
*
* @return string
*/
function cliff_example_add_to_cart_url( $url, $the_class ) {
if (
is_example()
&& $the_class->is_purchasable()
&& $the_class->is_in_stock()
) {
$url = remove_query_arg( 'added-to-cart', add_query_arg( 'add-to-cart', $the_class->get_id(), wc_get_cart_url() ) );
}
return $url;
}
}
// @TODO: The following (commented out) is likely not needed so try without it first!
// add_filter( 'woocommerce_product_add_to_cart_url', 'cliff_example_add_to_cart_url', 10, 2 );
if ( ! function_exists( 'cliff_example_home_page_to_landing_page' ) ) {
/**
* Redirect example.com home page to its landing page.
*
* @see \is_example()
*/
function cliff_example_home_page_to_landing_page() {
if (
! is_front_page()
|| ! is_example()
) {
return;
}
wp_redirect( 'https://www.example.com/some/deep-link/' );
exit;
}
}
add_action( 'template_redirect', 'cliff_example_home_page_to_landing_page' );