我已经为WooCommerce创建了以下自定义结账字段,基于可以找到的所有示例。
billing_houseno
shipping_houseno
输出显示地址字段(街道)和门牌号字段。很好用。将数据很好地存储在自定义门牌号字段中,地址的工作原理与正常情况相同——当然。
我想将以下字段合并到一个字段中:
billing_address_1
和billing_houseno
在billing_address_1
现有字段中。 shipping_address_1
和shipping_houseno
在shipping_address_1
现有字段中。因此,它将在一个数据库字段中合并这两个字段。
是否有办法将两个字段存储在一个现有字段中?
<?php
add_action( 'woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta' );
function my_custom_checkout_field_update_order_meta( $order_id ) {
if ( ! empty( $_POST['billing_houseno'] ) ) {
$billing_houseno = $_POST['billing_houseno'];
$billing_address_1 = $_POST['billing_address_1'];
$new_billing_address = $billing_houseno.'.'.$billing_address_1;
update_post_meta( $order_id, '_billing_address_1', $new_billing_address );
}
if(!empty($_POST['shipping_houseno'])){
$shipping_houseno = $_POST['shipping_houseno'];
$shipping_address_1 = $_POST['shipping_address_1'];
$new_shipping_address = $shipping_houseno.'.'.$shipping_address_1;
update_post_meta( $order_id, '_shipping_address_1', $new_shipping_address );
}
}
?>
试试这个
add_action('woocommerce_checkout_update_order_meta', 'customise_checkout_field_update_order_meta',10,2);
function customise_checkout_field_update_order_meta($order_id, $posted_data)
{
//write your code here to update custom data.
}
更新:
在您的注释代码链接中,您的代码中存在一些错误:
$newfields['billing']['billing_company'] = $fields['billing']['billing_company'];
$newfields['shipping']['shipping_company'] = $fields['shipping']['shipping_company'];
它抛出了一些错误…
您不应该取消设置“账单公司”
和“发货公司”
。
使用woocommerce\u checkout\u update\u order\u meta
action挂钩中的自定义函数,您将能够合并这些值。
add_action( 'woocommerce_checkout_update_order_meta', 'custom_checkout_field_update_order_meta', 10, 2 );
function custom_checkout_field_update_order_meta( $order_id ) {
$separator = '. '; // Separator for merged fields
// Billing fields
$billing_address_1 = sanitize_text_field( $_POST['billing_address_1'] );
$billing_houseno = sanitize_text_field( $_POST['billing_houseno'] );
if( ! ( empty($billing_address_1) && empty($billing_houseno) ) )
update_post_meta( $order_id, '_billing_address_1', $billing_address_1 . $separator . $billing_houseno );
$shipping_address_1 = sanitize_text_field( $_POST['shipping_address_1'] );
$shipping_houseno = sanitize_text_field( $_POST['shipping_houseno'] );
if( ! ( empty($shipping_address_1) && empty($shipping_houseno) ) )
update_post_meta( $order_id, '_shipping_address_1', $shipping_address_1 . $separator . $shipping_houseno );
}
代码进入函数。活动子主题(或活动主题)的php文件。
这一次,这是测试和工作。
我想在WooCommerce结帐页面中添加自定义字段,但用于选定的产品。 例如,如果客户的购物车中只有产品A,则此自定义字段应显示在WooCommerce签出页面中 我在函数中使用以下代码。php添加自定义字段:
为什么我不能从Woocommerce签出字段中检索数据,以便在订单处理时更新订阅数据? 我想根据客户结帐时的频率请求更新下一个续订日期。这是我的密码: 1) 设置签出字段: 2) 更新订单元数据。这将在客户订单上创建两个自定义字段,并更新订阅上的计费间隔: 3) 更新续约日期 对于最后一部分,我可以使用我选择的虚拟日期更新续约日期(例如:,但当我试图让它读取字段时,它会恢复为默认值。 这是我尝试过
我在印度使用进行在线支付, 我想要一个像账单地址这样的自定义字段应该存储在razorpay帐户和结帐表中。我知道,它将自定义数据存储到razorpay帐户,但我没有得到任何链接来设置结帐表单中的这些字段。 我的代码: 所以,我的问题是,如何在razorpay结账表单中获取所有字段?
问题内容: 我花了几天的时间来尝试找出如何以编程方式将值保存或更新到CustomField中,最后弄清楚它是如何完成的。因此,我将提出一个问题,然后回答该问题,就像我希望获得该问题和答案一样。 关于如何保存或更新JIRA中“自定义字段”的值的文档相互矛盾。我正在使用: 这不会将值保存到数据库中,但据我所知确实会更新值。例如,仅当在工作流后功能转换中进一步使用CustomField时才有用。 我正在
在WooCommerce结账页面上,我添加了一个客户必须输入才能结账的额外字段。 我想在woocommerce\u cart\u calculate\u fees操作挂钩中访问此字段的值。 通过使用woocommerce,我尝试了几种方法-
遵循电子商务签出字段自定义文档: 使用操作和筛选器自定义签出字段 我已经通过函数向woocommerce结帐页面添加了一个自定义字段。php。 我担心是否必须清理自定义字段的用户输入? 我认为它不需要消毒,因为它被传递到帐单字段中,如:$fields['billing'],对吗? 如果没有,我如何清理这个自定义字段? 创建此自定义字段意味着接受长度不超过50的文本字符串(拉丁文)和整数的组合。
我一直在编码一个WP插件,用于计算订单的平方英寸总体积,并通过自定义字段将其发送到Shipstation: 我通过SFTP上传到网站文件,它显示在WP上,但当我点击激活我得到一个致命的错误: 致命错误:未捕获错误:调用成员函数get_cart()在 /nas/content/live/sfmstaging/wp-content/plugins/boxCalc/boxCalc.php:10堆栈跟踪空
我对woocommerce(最新版本)中的自定义字段有问题。我需要你的帮助。 我的代码 现在我在从自定义字段获取数据时遇到问题。字段被保存到数据库中,因为在我编辑产品时,值在字段中,但在完成订单后,我无法在钩子中获取它:(我尝试使用get_post_meta、get_meta和其他方法,但都不起作用。有人知道原因吗?