我在此代码上做错了什么?我无法检索post_meta值。我知道它可以正确保存,因为值显示在订单编辑页面中。我只是无法在此功能中检索:
add_action( 'woocommerce_checkout_create_order', 'rev_change_total_on_checkout', 20, 1 );
function rev_change_total_on_checkout( $order ) {
$new_total_price = get_post_meta( $order->id, '_rev_fee_estimate', true);
$order->set_total($new_total_price );
}
基本上,我试图根据结帐后根据自定义字段值以编程生成的值添加到结帐表格中的值来更改总订单值。如果我将$ new_total_price的值进行了编码,则可以实现此目标,因此我知道此功能有效。我只需要检索自定义字段的保存值即可完成此操作。
在认为_rev_fee_estimate
尚未将其保存到数据库中,因为它是自定义字段。因此,您可以得到任何相关的内容。
相反,您需要获取发布的值。我将使用键_rev_fee_estimate
,但可以是其他的(您可以检查它,检查结帐页面上此自定义字段的生成的HTML代码。必要的键是此字段中的属性"名称"值(…
代码:
// Save an additional coverstart value in in the order post meta dat
add_action( 'woocommerce_checkout_create_order', 'initial_coverstart_custom_field_save', 20, 1 );
function initial_coverstart_custom_field_save( $order ) {
if( ! isset($_POST['_rev_fee_estimate']) ) return;
if( ! empty($_POST['_rev_fee_estimate']) )
{
$new_total_price = (float) sanitize_text_field( $_POST['_rev_fee_estimate'] )
$order->set_total( $new_total_price );
}
}
代码在您的活动子主题(或活动主题(的function.php文件中。一旦您检查了此自定义字段的正确键,它就应该起作用。