我不知道这是否是正确的地方,但我会尝试。我有一个使用 Ninja Forms 的 Wordpress(Genesis 框架 - Agentpress PRO 主题)正在进行的项目,并且遇到了一个小问题。网页是:http ://www.supercastor.net/wordpress/listings/castellon-65-m2-ytong/
我有一个列表页面(针对每个房屋模型)。每个列表都有元数据,可以通过 genesis 框架中的一个简单函数访问:
genesis_get_custom_field( 'CUSTOM_FIELD_NAME' );
我想像上面的链接一样,有一个用户可以选择/取消选择的复选框列表,最终计算出 TOTAL 值。一切正常,除了我无法从列表中分配这个“自定义字段”的值。
我正在使用Ninja Forms,经过一番研究,我想出了在NF中注册自定义字段的解决方案:
function precio_basico_calc_display( $field_id, $data ){
// Get the default_value
if( isset( $data['default_value'] ) ){
$def_value_new = genesis_get_custom_field( '_listing_precio_sort' );
$data['default_value'] = $def_value_new;
$default_value = $data['default_value'];
debug_to_console("Default_value is set to:$default_value");
}else{
$default_value = '';
debug_to_console("Default_value NOT SET");
}
$products_select = genesis_get_custom_field( '_listing_precio_sort' );
}
// Now that $products_select is populated with the listing_price, output a checkbox with the value of the price. ?>
<input type="checkbox" name="ninja_forms_field_<?php echo $field_id;?>" value="<?php echo $products_select;?>" checked="checked" class="ninja-forms-field ninja-forms-field-calc-listen" disabled="disabled">
<?php
}
我还有一个小的“debug_to_console”函数,但这只是一个快速的“调试”。我可以看到该值在那里,但在计算中它没有设置。我已将默认值设置为 40.000,但应将其设置为每个价格的值(在链接示例中,应为 19.000)。作为:
$products_select = genesis_get_custom_field( '_listing_precio_sort' );
我还尝试了以下方法(field_id 33 是表单中的复选框):
add_filter( 'ninja_forms_field', 'my_filter_function', 10, 2 );
function my_filter_function( $data, $field_id ){
if( $field_id == 33 ){
$listing_price = genesis_get_custom_field( '_listing_precio_sort' );
$data['default_value'] = $listing_price;
}
return $data;
}
但它也不起作用。我的意思是,它确实显示了值(在控制台中),但没有正确计算。
帮助!我只想为每个列表正确更新计算(总计)。我认为更改 default_value 可以,但事实并非如此。我迷路了 :(
谢谢!