Estoy tratando de ayudar a alguien a crear un código abreviado de wordpress para obtener el precio de woocommerce por identificación del producto. A continuación se muestra el código de la función:
add_shortcode('db_wc_product_price', 'db_wc_product_price');
function db_wc_product_price($atts)
{
if (!function_exists('wc_get_product') || !function_exists('get_woocommerce_currency_symbol')) return '';
$atts = shortcode_atts( array(
'id' => null
), $atts, 'db_wc_product_price' );
if (empty($atts['id'])) return 'no id';
$product_id = $atts['id'];
$ret = "id : ".$product_id;
//return $ret;
$product = wc_get_product($product_id);
//$product = wc_get_product(2571);
if (!$product) return 'No product found';
return get_woocommerce_currency_symbol().$product->get_price();
}
Así es como lo estoy llamando:
[db_wc_product_price id='2571']
Cuando devuelvo solo el product_id, está imprimiendo el valor correcto. Es decir, la identificación se está pasando correctamente. Pero, cuando llamo a wc_get_product($product_id), este devuelve ‘No se encontró ningún producto’. Si codifico el valor de product_id mientras llamo a wc_get_product($product_id), funciona bien. ¿Qué estoy haciendo mal?
Además, cuando llamo a un código abreviado como este (identificación entre comillas dobles en lugar de simple), devuelve ‘sin identificación’
[db_wc_product_price id="2571"]
.