Botón de página de producto único de Woocommerce solo para categorías específicas

2 minutos de lectura

avatar de usuario
Sean Smith

He agregado un código para mostrar un botón “Ver muestra del producto” en la página de Woocommerce. El botón funciona correctamente; sin embargo, me gustaría que el botón se muestre solo para una determinada categoría. La categoría que tenemos es “cursos electrónicos”

Aquí está el código que he usado para el botón:

add_action('woocommerce_after_add_to_cart_button','custom_button_by_categories');
function custom_button_by_categories() {

 global $post;

$demoslug = $post->post_name;

$demourl = get_bloginfo('url').'/courses/'.$demoslug."https://stackoverflow.com/";

    $demotitle = esc_attr($post->post_title);

echo '<a href="'.$demourl.'" target="_blank" button type="submit" class="button sample">View Product Sample</a>';
}

Gracias por cualquier ayuda que pueda proporcionar.

Puedes hacerlo usando has_term() Función de WordPress (donde tendrás que definir tu categoría de producto).

Puedes usar woocommerce_simple_add_to_cart con una prioridad por encima de 30 de esta manera:

add_action( 'woocommerce_simple_add_to_cart', function(){
    global $product, $post;

    // Set HERE your product category (ID, name or slug)
    if ( has_term( 'e-courses', 'product_cat', $post->ID ) ){

        $demourl = get_bloginfo('url').'/courses/'.esc_attr($post->post_name)."https://stackoverflow.com/";

        $demotitle = esc_attr($post->post_title);

        echo '<a href="'.$demourl.'" target="_blank" button type="submit" class="button sample">View Product Sample</a>';
    }
}, 31 );

O también usando tu gancho:

add_action('woocommerce_after_add_to_cart_button','custom_button_by_categories');
function custom_button_by_categories() {

    // Set HERE your product category (ID, name or slug)
    if ( has_term( 'e-courses', 'product_cat', $post->ID ) ){

        global $post;

        $demoslug = $post->post_name;

        $demourl = get_bloginfo('url').'/courses/'.$demoslug."https://stackoverflow.com/";

        $demotitle = esc_attr($post->post_title);

        echo '<a href="'.$demourl.'" target="_blank" class="button sample">View Product Sample</a>';
    }
}

El código va en el archivo function.php de su tema secundario activo (o tema) o también en cualquier archivo de complemento.

Probado y funciona.

  • Loic Gracias por tu ayuda. El código que sugirió funcionó muy bien.

    – Sean Smith

    21 de agosto de 2017 a las 18:12

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad