在WooCommerce中,我使用这个胎面的代码,用一个简短的代码显示定义的产品ID中的产品价格。但它并不真的像我想要的那样。代码如下:
function so_30165014_price_shortcode_callback( $atts ) {
$atts = shortcode_atts( array(
'id' => null,
), $atts, 'bartag' );
$html = '';
if( intval( $atts['id'] ) > 0 && function_exists( 'wc_get_product' ) ){
$_product = wc_get_product( $atts['id'] );
$number = number_format($_product->get_price(), 2, '.', ',');
$html = "$" . $number;
}
return $html;
}
add_shortcode( 'woocommerce_price', 'so_30165014_price_shortcode_callback' );
我对php编码知识很差。但我看到另一个线程显示产品价格:
$_product->get_regular_price();
$_product->get_sale_price();
$_product->get_price();
我已经尝试将这些代码混合到大代码中,并替换了get_price()
……它起作用了,但我想要的是显示价格的东西是这样的:
我需要在价格后面显示货币符号,像:37欧元
(中间有空格),而不是像$37
。
我怎样才能使它以一种干净的正常方式工作?
已更新(考虑您的价格显示是否含税)
在Woocommerce中,已经有格式化价格函数wc_price()
可以在代码中使用。你还需要得到销售价格…
要在有销售价格或没有销售价格的情况下使其工作,请尝试以下代码(注释):
function custom_price_shortcode_callback( $atts ) {
$atts = shortcode_atts( array(
'id' => null,
), $atts, 'product_price' );
$html = '';
if( intval( $atts['id'] ) > 0 && function_exists( 'wc_get_product' ) ){
// Get an instance of the WC_Product object
$product = wc_get_product( intval( $atts['id'] ) );
// Get the product prices
$price = wc_get_price_to_display( $product, array( 'price' => $product->get_price() ) ); // Get the active price
$regular_price = wc_get_price_to_display( $product, array( 'price' => $product->get_regular_price() ) ); // Get the regular price
$sale_price = wc_get_price_to_display( $product, array( 'price' => $product->get_sale_price() ) ); // Get the sale price
// Your price CSS styles
$style1 = 'style="font-size:40px;color:#e79a99;font-weight:bold;"';
$style2 = 'style="font-size:25px;color:#e79a99"';
// Formatting price settings (for the wc_price() function)
$args = array(
'ex_tax_label' => false,
'currency' => 'EUR',
'decimal_separator' => '.',
'thousand_separator' => ' ',
'decimals' => 2,
'price_format' => '%2$s %1$s',
);
// Formatting html output
if( ! empty( $sale_price ) && $sale_price != 0 && $sale_price < $regular_price )
$html = "<del $style2>" . wc_price( $regular_price, $args ) . "</del> <ins $style1>" . wc_price( $sale_price, $args ) . "</ins>"; // Sale price is set
else
$html = "<ins $style1>" . wc_price( $price, $args ) . "</ins>"; // No sale price set
}
return $html;
}
add_shortcode( 'product_price', 'custom_price_shortcode_callback' );
[product_price id="37"]
我使用Woocommerce插件在wordpress中开发了购物车。我需要按产品价格在购物车订单中显示产品,请帮助我做到这一点 谢啦
我已经实现了代码并使其工作,但现在唯一的问题是价格没有正确显示,没有注册逗号。 例如,我有一个价格显示为 当它应该显示为时
我在我的WooCommerce 2.6.4商店上使用可变产品,我为同一产品的两种不同变体添加了不同的价格。当选择两个变体中的一个时,根本不显示任何价格。下面的div只是空的: 我希望预选的变异价格显示为默认,而非预选的变异价格应在选择时动态替换。几乎像这个演示,除了从一个预选的项目和价格应该显示为默认。
基于"获取选定的变化价格在jQuery上WooCommerce可变产品"回答我最后一个问题的代码,此代码获取用户输入到产品选项,我试图使用这些值来计算显示给用户的价格,但我不能弄清楚。 除窗口警报消息上方的部分外,所有代码都有效。我也尝试在警告消息上方的php标记中添加一个过滤函数,但它显示了所有类型的错误。 是否可以使用javascript更改显示的价格? 这是我实际使用的代码: 任何帮助赞赏。
我需要在自定义快捷码中显示全局$product。我正在尝试创建一个$product的手动布局,其中只包含“C类”产品。 所以在我的短代码中我声明 但我的函数返回空$产品 当我使用$woocommerce时,我会获取数据,但无法定位我的产品。 如何在自定义快捷码上获取所有产品,以手动显示和控制产品布局?