我知道这不是一个与woocommerce相关的网站,我试过官方论坛,但在3天内没有回复。我花了一天或更长时间,所以我希望你能帮忙。
我为这些产品创建了一个自定义wp_query。这些产品具有自定义字段(custom_price)。我想用自定义字段的值覆盖查询中的价格。
我在这里看到了关于这个的问题,但我在php / wordpress中非常新。我非常感谢你的帮助。
我的查询:
<?php woocommerce_product_loop_start(); ?>
<?php
if(is_front_page()){
$args = array(
'post_type' => 'product',
'posts_per_page' => 6,
'meta_key' => '_featured',
'meta_value' => 'yes'
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
wc_get_template_part( 'content', 'product' );
}
}
wp_reset_query();
}
?>
<?php woocommerce_product_loop_end(); ?>
答案 0 :(得分:0)
如果您只想更改显示的价格,则可以实施过滤器woocommerce_price_html
,woocommerce_sale_price_html
,woocommerce_cart_item_price_html
。这将导致显示的价格无论您想要什么,但用于计算税,运费,总数等的购物车中的实际价格将基于&#34;真实的&#34;价钱。
// the HTML that is displayed on the product pages
function my_price_html( $html, $_product ) {
// if this is a variation we want the variation ID probably?
$id = isset($_product->variation_id) ? $_product->variation_id : $_product->id;
$custom_price = get_post_meta( $id, 'custom_price', true );
$custom_price_html = "<b>$custom_price</b>"; // just an example of HTML
return $custom_price_html;
}
add_filter( 'woocommerce_price_html', 'my_price_html', 10, 2 );
add_filter( 'woocommerce_sale_price_html', 'my_price_html', 10, 2 );
// the HTML that is displayed on the cart
function my_cart_item_price_html( $html, $cart_item, $cart_item_key ) {
$id = $cart_item['data']->id;
$custom_price = get_post_meta( $id, 'custom_price', true );
$custom_price_html = "<b>$custom_price</b>"; // just an example of HTML
return $custom_price_html;
}
add_filter( 'woocommerce_cart_item_price_html', 'my_cart_item_price_html', 10, 3 );
如果您想要实际影响商品价格,则需要实施其他过滤器/操作,以上只会影响显示。更好的选择可能是实现save_post
或update_post_meta
的操作,以便在自定义字段值更改时更新WooCommerce产品价格(假设您使用codex更新此值)。