创建一个显示单独元素"销售百分比的短代码"对于woocommerce

时间:2016-06-16 12:11:42

标签: woocommerce product sales price

我需要创建一个短代码,显示在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中除以零

我该如何解决?

2 个答案:

答案 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();