
[英]Custom Shortcode displaying WooCommerce product price: Display a text for zero price
[英]Shortcode - Display product price by product SKU in Woocomerce
我需要通过使用 sku 来显示给定产品的价格,尝试使用我找到的几个短代码但运气不佳 - 想在将产品的 sku 输入短代码后查看页面上的价格,像这样 [ woocommerce_price sku="sku123"] [woocommerce_price sku="sku345"]
任何人都可以建议如何实现这一目标?
有关我尝试但不起作用的示例代码,请参见此处
extract( shortcode_atts( array(
'sku' => null,
), $atts, 'woocommerce_price' ) );
if( intval( $sku ) > 0 && function_exists( 'wc_get_product' ) ){
$product = wc_get_product_id_by_sku( $sku );
if ( $product->get_price() > 0 ) {
return $product->get_price_html();
} else {
return __( "Price unavailable", "woocommerce" );
}
}
}
add_shortcode( 'woocommerce_price', 'wc_price_shortcode_callback' );```
您可以使用此 function 并获取价格
function get_product_by_sku( $sku ) { global $wpdb; $product_id = $wpdb->get_var( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key='_sku' AND meta_value='%s' LIMIT 1", $sku ) ); if ( $product_id ) return new WC_Product( $product_id ); return null;} $product = get_product_by_sku( $sku); $product->get_regular_price(); $product->get_sale_price(); $product->get_price();
这应该是您提取后的内部简码。
if( !is_null($sku) && function_exists( 'wc_get_product' ) ){
$product_id = wc_get_product_id_by_sku( $sku );
$product = wc_get_product($product_id); //get the product object from id here.
if ( $product->get_price() > 0 ) {
return $product->get_price_html();
} else {
return __( "Price unavailable", "woocommerce" );
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.