嗨,我有用于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 );