Hola!
Nos gustaría eliminar las fichas de producto de nuestra tienda de Woocommerce porque realmente no las necesitamos, es decir, no necesitamos esas "url" que se generan cada vez que subimos un producto ni la descripción con los atributos.
¿Cómo lo podríamos hacer?
Muchas gracias como siempre por vuestra ayuda!
Contenido solo visible a usuarios registrados
Hola Alba,
¿Sería posible adaptarlo para lo que necesitamos ahora?
Que mal saber que no te han funcionado 🙁 sin embargo recuerda que para nosotros no es posible la adaptación ni creación de códigos a medida ya que no tenemos permitido el acceso a los sitios de los usuarios, teniendo esto en cuenta te planteo las opciones que puedes considerar
1-Remitir tu solicitud donde adapten el código a nuestros colaboradores como ya te he comentado en mensajes anteriores
2-Que hagas una consulta respecto a la funcionalidad que deseas directamente al soporte del tema que usas actualmente, al ser de pago tienes esa opción disponible
Lamentamos no poder orientarte mas en este tema, de igual manera quedamos atentos a tus comentarios
Saludos!
Hola Alba.
Puedes probar a modificar " wp_redirect( $product->get_product_url() " por lo siguiente " wp_redirect( $product->get_product_url() . ", '_blank'
"
Le añadimos la etiqueta " blank
" para que abra la URL en una nueva pestaña.
Un saludo
@pepesoler Muy interesante tu respuesta. Muchas gracias por tu interés.
La etiqueta blank que comentas, ¿se añadiría de la siguiente forma?:
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() . ", '_blank' "
exit;
}
}
Porque lo hemos incluido así pero rompe el sitio web. Parece que como si le faltara algo al código.
¿Qué puede ser?
Gracias de nuevo.
Hola Alba.
Seria algo parecido a esto:
$link_target = $product->is_type( 'external' ) ? '_blank' : '_self';
Prueba el siguiente código:
add_filter( 'woocommerce_loop_product_link', 'filter_external_product_permalink', 10, 2 );
if ( ! function_exists( 'filter_external_product_permalink' ) ) {
/**
* Insert the external url for products in the loop.
*/
function filter_external_product_permalink( $the_permalink, $product ){
global $product;
if( $product->is_type( 'external' ) ) {
$external_link = $product->get_product_url();
return $external_link;
}
return $the_permalink;
}
}
if ( ! function_exists( 'woocommerce_template_loop_product_link_open' ) ) {
/**
* Insert the opening anchor tag for products in the loop.
*/
function woocommerce_template_loop_product_link_open() {
global $product;
$link = apply_filters( 'woocommerce_loop_product_link', get_the_permalink(), $product );
$link_target = $product->is_type( 'external' ) ? '_blank' : '_self';
echo '<a target="' . esc_attr( $link_target ).'" href="' . esc_url( $link ) . '" class="woocommerce-LoopProduct-link woocommerce-loop-product__link">';
}
}
add_filter( 'woocommerce_loop_add_to_cart_link', 'custom_external_add_product_link' , 10, 2 );
if ( ! function_exists( 'custom_external_add_product_link' ) ) {
function custom_external_add_product_link( $permalink ) {
global $product;
if ( $product->is_type( 'external' ) ) {
$permalink = sprintf( '<a rel="nofollow ugc" href="%s" data-quantity="%s" data-product_id="%s" data-product_sku="%s" class="%s" target="_blank">%s</a>',
esc_url( $product->add_to_cart_url() ),
esc_attr( isset( $quantity ) ? $quantity : 1 ),
esc_attr( $product->id ),
esc_attr( $product->get_sku() ),
esc_attr( isset( $class ) ? $class : 'button product_type_external add_to_cart_button' ),
esc_html( $product->add_to_cart_text() )
);
}
return $permalink;
}
}
Otra opción y la que seria la mas facil es con plugin:
-> https://wordpress.org/plugins/open-external-links-in-a-new-window/
Un saludo