我需要创建一个短代码,显示在woocommerce系统中销售的产品的销售百分比。
我在我的主题的function.php中添加了此代码,以显示价格后的百分比,并且工作正常:
// Add save percent next to sale item prices.
add_filter( 'woocommerce_sale_price_html', 'woocommerce_custom_sales_price', 10, 2 );
function woocommerce_custom_sales_price( $price, $product ) {
$percentage = round( ( ( $product->regular_price - $product->sale_price ) / $product->regular_price ) * 100 );
return $price . sprintf( __(' Save %s', 'woocommerce' ), $percentage . '%' );
}
现在我尝试编辑它以获得新的短代码,但没有结果:
// Add save percent next to sale item prices.
add_shortcode('sale_percentage', 'sale_percentage_shortcode');
function sale_percentage_shortcode( $price, $product ) {
$percentage = round( ( ( $product->regular_price - $product->sale_price ) / $product->regular_price ) * 100 );
return "<span>Meno $percentage %</span>";
}
所有值都是0,我收到一些警告信息如下: 警告:在第1518行的/web/htdocs/www.domain.com/home/wp-content/themes/theme/functions.php中除以零
我该如何解决?
答案 0 :(得分:0)
// Add Shortcode
function get_sale_price( $atts ) {
if( function_exists('get_product') ){
$sale_price = get_post_meta( get_the_ID(), '_sale_price', true);
$regular_price = get_post_meta( get_the_ID(), '_regular_price', true);
$percentage = round( ( ( $regular_price - $sale_price ) / $regular_price ) * 100 );
return 'Meno' . $percentage.'%';
}
}
add_shortcode( 'get_sale_price', 'get_sale_price' );
使用此代码解决了,即使它很慢
答案 1 :(得分:0)
我正在寻找一些百分比报价的简码,最后我找到了一些文章,也许这可以帮助任何人:
function get_sale_price( $atts ) {
$atts = shortcode_atts( array(
'id' => null,
), $atts, 'bartag' );
$html = '';
$salep = '';
$prodp = '';
if( intval( $atts['id'] ) > 0 && function_exists( 'wc_get_product' ) ){
$_product = wc_get_product( $atts['id'] );
$regular_price = $_product->get_regular_price();
$sale_price = $_product->get_price();
$html = round((($regular_price - $sale_price) / $regular_price) * 100). '%';
}
return $html;
}
add_shortcode( 'get_sale_price', 'get_sale_price' );
你也可以使用这个:
$_product->get_regular_price();
$_product->get_sale_price();
$_product->get_price();