我正在尝试向结帐页面添加其他字段。我已经设置了我的ACF字段,并且可以在结帐页面上显示它们(通过acf_form),但是当我下订单时,我在字段中输入的值不会传递到创建的订单。
这是我用来显示和更新字段的代码:
add_action( 'woocommerce_after_order_notes', 'my_acf_checkout_display' );
function my_acf_checkout_display() {
acf_form(array('form' => false,'fields' => array('inseam')));
}
add_action( 'woocommerce_checkout_update_order_meta','acf_update_field_at_checkout' );
function acf_update_field_at_checkout( $order_id ) {
// acf custom field id
$my_field = 'inseam';
$acf_form_value = $_POST['acf'][$my_field];
update_field($my_field,$acf_form_value,$order_id);
}
在这里,您可以看到我如何设置字段:
这是我的结帐页面的样子:
下面是订单中的"updated"字段(保持为空):
当我硬编码的值,说12,那么它的工作!
add_action( 'woocommerce_after_order_notes', 'my_acf_checkout_display' );
function my_acf_checkout_display() {
acf_form(array('form' => false,'fields' => array('inseam')));
}
add_action( 'woocommerce_checkout_update_order_meta','acf_update_field_at_checkout' );
function acf_update_field_at_checkout( $order_id ) {
// acf custom field id
$my_field = 'inseam';
$acf_form_value = 12;
//$acf_form_value = $_POST['acf'][$my_field];
update_field($my_field,$acf_form_value,$order_id);
}
有谁知道为什么它不填充输入的值为inseam的秩序?
非常感谢你提前!
2条答案
按热度按时间p1iqtdky1#
您没有使用正确的字段ID来与ACF一起使用。
因此,首先在管理员ACF字段组中单击“屏幕选项”:
然后选择显示字段“slug”和“Field Key”选项。
现在你可以得到正确的“字段键”在你的代码中使用...
下面是我测试过的代码,重现了你的设置 (在代码中替换正确的字段Key为你的“Inseam”字段):
代码放在活动子主题(或活动主题)的functions.php文件中。测试和作品。
现在,该字段显示在订单页面的“管理员”中,并带有提交的值。
以干净的方式处理多个高级自定义字段**
首先,我在ACF字段组设置中设置了2个字段:
代码如下:
代码放在活动子主题(或活动主题)的functions.php文件中。测试和作品。
结帐页面显示:
kmpatx3s2#
谢谢你的回答!我有一些文本字段和2个字段在结帐上传文件。这些字段的值我保存到用户的 meta。但是如何在结帐时上传文件呢?
下面是我代码: