如何发布 woocommerce 结帐字段 html 值



嗨,我有用于woocommerce结帐页面的自定义字段。 我想用html输出数据库保存它。 但是,每次都通过清理html来保存这些内容。 如何将写入这些字段的 html 代码保存到数据库中?

add_filter(`woocommerce_checkout_fields`, `burayi_ekle`);
function burayi_ekle($fields)
{
$fields['billing']['billing_satis'] = [
'type'     => 'textarea',
'label'    => __('SATIŞ1', 'woocommerce'),
'class'    => ['input-text'],
'required' => true,
'clear'    => false,
'priority' => 120,
];
$fields['billing']['billing_satis2'] = [
'type'     => 'textarea',
'label'    => __('SATIŞ2', 'woocommerce'),
'class'    => ['input-text'],
'required' => true,
'clear'    => false,
'priority' => 121,
];
return $fields;
}

您可以将 WC 结帐自定义字段数据与 HTML 一起保存到数据库中。该记录将保存在帖子类型订单的邮政元表中。

在这里你可以尝试以下代码

function save_extra_checkout_fields( $order_id, $posted ){
if( isset( $posted['billing_satis'] ) ) {
update_post_meta( $order_id, '_billing_satis', sanitize_text_field( $posted['billing_satis'] ) );
}
if( isset( $posted['billing_satis2'] ) ) {
update_post_meta( $order_id, '_billing_satis2', $posted['billing_satis2'] );
}
}
add_action( 'woocommerce_checkout_update_order_meta', 'save_extra_checkout_fields', 10, 2 );

使用 update_post_meta 添加到数据库时不要转义 html。

奥基 . 我修复它.

这是我的真实代码

function save_extra_checkout_fields( $order_id ){
$billing_satis = $_POST['billing_satis'];
if(   ! empty($billing_satis) ){
update_post_meta( $order_id, '_billing_satis', $billing_satis  );
}
$billing_satis2 = $_POST['billing_satis2'];
if(   ! empty($billing_satis2) ){
update_post_meta( $order_id, '_ billing_satis2', $billing_satis2 );
}
}
add_action( 'woocommerce_checkout_update_order_meta', 'save_extra_checkout_fields', 10, 2 );

最新更新