我试图显示从x-x的变化自定义价格跨度。
function change_product_price_display( $price) {
$bulk_price = get_post_meta([ 'variation_id' ], 'bulk_price', true);
$priceMax = $product->get_variation_price('max'); // Max price
//only show in archives
if (is_product_category()) {
//only if there is a bulk price
if ( $bulk_price ) {
return ' <span class="price-suffix">' . ' From ' . get_woocommerce_currency_symbol() .__( $bulk_price , "woocommerce") . ' - ' . $priceMax . '</span>';
}
}
//don't affect other products
else {
return $price;
}
}
add_filter( 'woocommerce_get_price_html', 'change_product_price_display');
add_filter( 'woocommerce_cart_item_price', 'change_product_price_display');
在产品类别存档中显示最低值(自定义域)至最高价格。在代码中添加解释的注释
// Display on product category archive lowest value to max price
function change_product_price_display( $price, $product ) {
// Returns true when viewing a product category archive.
if ( is_product_category() ) {
// Set array
$bulk_prices = array();
// Loop for variations IDs
foreach( $product->get_children() as $variation_id ) {
// Get post meta
$bulk_price = get_post_meta($variation_id, 'bulk_price', true);
// True
if( $bulk_price ) {
// Push
$bulk_prices[] = $bulk_price;
}
}
// NOT empty
if( sizeof($bulk_prices) > 0 ) {
// Sort: low to high
sort($bulk_prices);
// First value
$lowest_value = reset( $bulk_prices );
// Get max price
$price_max = $product->get_variation_price('max');
// Output
$price = '<span class="price-suffix">From ' . get_woocommerce_currency_symbol() . $lowest_value . ' - ' . wc_price($price_max) . '</span>';
}
}
return $price;
}
add_filter( 'woocommerce_variable_price_html', 'change_product_price_display', 10, 2 );
为清晰起见,创建和保存自定义域的代码
// Add custom field input product variations
function action_woocommerce_variation_options_pricing( $loop, $variation_data, $variation ) {
woocommerce_wp_text_input( array(
'id' => 'bulk_price[' . $loop . ']',
'desc_tip' => 'true',
'description' => __( 'Enter the Bulk price here.', 'woocommerce' ),
'label' => __( 'Custom Field', 'woocommerce' ),
'value' => get_post_meta( $variation->ID, 'bulk_price', true )
));
}
add_action( 'woocommerce_variation_options_pricing', 'action_woocommerce_variation_options_pricing', 10, 3 );
// Save custom field on product variation save
function action_woocommerce_save_product_variation( $variation_id, $i ) {
$bulk_price = $_POST['bulk_price'][$i];
if ( isset( $bulk_price ) ) {
update_post_meta( $variation_id, 'bulk_price', esc_attr( $bulk_price ) );
}
}
add_action( 'woocommerce_save_product_variation', 'action_woocommerce_save_product_variation', 10, 2 );
我不只是想用钩子添加所有的自定义元数据,因为我需要对输出进行非常严格的控制。例如,对于在购物车页面中包含自定义域,下面的答案可以很好地工作:在Woocommerce购物车中显示自定义域的值&Checkout items 但我也希望它们出现在结帐、订单详细信息和电子邮件中,并完全控制它们出现的HTML(在某些情况下,它们也需要转换,例如,Unix时间戳转换为人类可读的时间)。 在模板中,我尝试了以下
我试图在变体下拉列表中显示产品变体价格。我试图改变默认的行为,当你在下拉列表中选择一个变量时,价格显示在div中。 问题是我找不到那个部门的变动价格。我搜索了所有的javascript,但找不到它 如果我使用: 我只得到所有选项的最小变化价格。我想知道每种变体的价格。有线索吗?
当我进入产品编辑页面时,有一个选项卡“属性”。在那里我可以设置属性名及其值。 我假设这就是在Woocommerce上为产品添加自定义属性的方式。 但是如何在循环中得到这个值呢? 我看到人们使用,但它希望我传递分类法和另一个参数数组。分类学是什么?我没有手动添加。论点是什么?
我试图在woocommerce中获得一个特定的自定义属性。我在这个网站上读了很多文章,其中提供了3-5种方法。在尝试了所有方法之后,对我来说唯一有效的方法就是循环所有属性——所有其他属性都不起作用。我有一个名为“pdfs”的自定义属性 以下尝试不起作用:(链接) 这是唯一的一个工作:(链接) 我更希望能够使用第一个选项之一。任何帮助都将不胜感激。谢谢
我正在我的WooCommerce网店上为我的产品制作一个自定义附加组件。一切正常,但我只需要一件事。当客户选中产品页面上的复选框时,必须将$30添加到所选变体的原始价格中。 这部分:检查复选框是否被选中。 我的问题就在这里: 的值仅为0。 因此,我试图找出如何获得所选变体的价格。 我尝试了和,但没有任何运气... 更新我已经尝试从这个线程实现代码。有了这些代码,我可以得到所选变体的价格,但我不能再