Puede agregar una verificación inicial para verificar que el shortcode solo se activa en la página del producto.
add_shortcode( 'custom_product_description', 'display_custom_product_description' );
function display_custom_product_description( $atts ){
// only on the product page
if ( ! is_product() ) {
return;
}
$atts = shortcode_atts( array(
'id' => get_the_id(),
), $atts, 'custom_product_description' );
global $product;
if ( ! is_a( $product, 'WC_Product') )
$product = wc_get_product($atts['id']);
return $product->get_description();
}
Si desea utilizar el shortcode también fuera de la página del producto
No tienes que configurar el get_the_id()
valor a la identificación atributo del primer parámetro; de lo contrario, el shortcode siempre ignorará la identificación del producto ingresada por el usuario.
Puedes usar el siguiente código abreviado en cualquier página del sitio configurando, en este caso, el atributo id con el id del producto del que desea obtener la descripción.
Puedes optimizar el shortcode así:
add_shortcode( 'custom_product_description', 'display_custom_product_description' );
function display_custom_product_description( $atts ){
$atts = shortcode_atts( array(
'id' => '',
), $atts, 'custom_product_description' );
if ( empty( $atts['id'] ) ) {
if ( is_product() ) {
global $product;
} else {
return;
}
} else {
if ( is_a( wc_get_product($atts['id']), 'WC_Product' ) ) {
$product = wc_get_product( $atts['id'] );
} else {
return;
}
}
return $product->get_description();
}
.