只需使用$product
参数获取自定义字段值,并确定要返回的内容:
function custom_price_html( $price, $product ) {
if ( ( int ) get_post_meta( $product->id, \'price_per_person\', true ) )
$price .= \' per person\';
elseif ( ( int ) get_post_meta( $product->id, \'price_per_group\', true ) )
$price .= \' per group\';
$price .= \'[filtered]\'; // For debugging - if you don\'t see this next to your prices, the filter isn\'t even running, hence why it\'s not working!
return $price;
}
add_filter( \'woocommerce_get_price_html\', \'custom_price_html\', 500, 2 );
这是假设您将每个“已检查”状态保存在其自己的元键下,如果某个状态未检查,则该字段不存在或为“空”。
实际上,使用一个元字段可能更有意义price_type
, 然后保存值per_person
或per_group
取决于选中的状态(因为价格不能同时是两种类型,对吗?)。
Update: 要调试这种情况,请将其放置在functions.php
, 在浏览器中查看产品,然后使用输出更新您的问题:
function wpse_183901_debug_product() {
if ( is_singular( \'product\' ) ) {
echo \'<pre>\';
echo esc_html( print_r( get_post_meta( get_queried_object_id() ), true ) );
echo \'</pre>\';
exit;
}
}
add_action( \'template_redirect\', \'wpse_183901_debug_product\' );