在Woocommerce中,我想在结帐页面添加一个隐藏字段,该属性值将是一个自定义生成的唯一随机字符串。
这可能吗?
答案 0 :(得分:1)
这很容易做到...尝试以下方法:
add_action( 'woocommerce_before_order_notes', 'additional_hidden_checkout_field' );
function additional_hidden_checkout_field() {
// echo '<input type="hidden" name="custom_unique_key" value="'.md5( microtime() . rand() ).'">';
echo '<input type="hidden" name="yudu_pw" value="'.rand(102548, 984675).'">';
}
你会得到类似这样生成的html代码(就在订单备注字段之前):
<div class="woocommerce-additional-fields">
<input type="hidden" name="_random_unique_key" value="837542">
然后您可以使用以下方法保存该自定义随机字符串值:
add_action( 'woocommerce_checkout_create_order', 'additional_hidden_checkout_field_save', 20, 2 );
function additional_hidden_checkout_field_save( $order, $data ) {
if( ! isset($_POST['yudu_pw']) ) return;
if( ! empty($_POST['yudu_pw']) ){
$order->update_meta_data( 'yudu_pw', sanitize_text_field( $_POST['yudu_pw'] ) );
}
}
因此,此自定义随机字符串值将保存在元数据...
中所有代码都包含在您的活动子主题(或活动主题)的function.php文件中。经过测试和工作。