我在签出页面中添加了4个自定义字段(在functions.php中)
现在,我在Order页面中显示值
get_post_meta( $order->id, \'My Field\', true )
如果订单状态为“正在处理”,我需要客户可以编辑订单页面(前端)上的值。
我不知道谁能做这个。
我尝试使用acf插件(ACF Plugin)
用于在签出页面上使用此选项。但我发现没有什么,acf的支持与这个话题无关。
下一种方法是,我尝试将自定义字段值加载为acf输入插件的“default\\u value”。但它不起作用。
function my_acf_load_field( $field ) {
//$acfstrasse = get_field(\'field_name\', $post_id);
$acfstrasse = get_post_meta( $order->id, \'Strasse\', true );
$field[\'default_value\'] = $acfstrasse;
return $field;
}
add_filter(\'acf/load_field/name=field_name\', \'my_acf_load_field\');
我希望您知道客户可以在订单页面(前端)上编辑自定义字段值的方法
谢谢
对不起,我的英语不好。(德语是我的语言)
最合适的回答,由SO网友:kreativcube 整理而成
我找到了解决办法。
我已在订单详细信息中使用此代码。php页面
<?php
global $post;
$post = $order_id;
if ( isset( $_POST[\'submit\'] ) )
{
echo \'Update nicht\';
} else if ( ! empty( $_POST[\'frontstrasse\'] ) ) {
update_post_meta( $order_id, \'Strasse\', sanitize_text_field( $_POST[\'frontstrasse\'] ) );
update_post_meta( $order_id, \'Haus-Nr\', sanitize_text_field( $_POST[\'fronthausnr\'] ) );
}
$istrasse = get_post_meta($order->id, \'Strasse\', true );
$ihausnr = get_post_meta($order->id, \'Haus-Nr\', true );
?>
<form method="post" action="">
<label>Strasse</label><input type=\'text\' name=\'frontstrasse\' value=\'<?php echo $istrasse ?>\' />
<label>Haus-Nr</label><input type=\'text\' name=\'fronthausnr\' value=\'<?php echo $ihausnr ?>\' />
<input type=\'submit\' value=\'save\' name=\'frontsubmit\' />
</form>
SO网友:figl
您不必编辑order-details.php
第页woocommerce_order_details_after_order_table
行动将取得同样的结果。
add_action( \'woocommerce_order_details_after_order_table\',
\'namespace\\custom_field_display_cust_order_meta\', 10, 1 );
function custom_field_display_cust_order_meta( $order ) {
echo \'<form [whatever]>\';
/* translators: whatever */
echo \'<p>\' . sprintf( __( \'<strong>Property 1:</strong> %1$s (%2$s)\' ),
\'<input [whatever]>\'
. get_post_meta( $order->get_order_number(),
\'property 1.1\', true )
. \'</input>\',
\'<input [whatever]>\'
. get_post_meta( $order->get_order_number(),
\'property 1.2\', true )
. \'</input>\' )
. \'</p>\';
echo \'[whatever]\';
echo \'</form>\';
}