我是新来的。我不知道问题出在哪里这是我的代码
我在结账页面的账单表单中添加了一个选择字段。
问题
提交时未保存或更新记录。问题在于使用字段值更新订单元。值未在数据库中更新
// checkout page customization start
global $post, $woocommerce;
// Account select field
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
function custom_override_checkout_fields($fields) {
$fields['billing']['Account'] = array(
'type' => 'select',
'class' => array('billing form-row-wide'),
'label' => __('Choose an Account'),
'placeholder' => _x('Account', 'placeholder', 'woocommerce'),
'options' => array(
'' => __( 'Select Account','' ),
),
'required' => true,
);
return $fields;
}
add_action('woocommerce_checkout_process', 'my_custom_checkout_field_process');
function my_custom_checkout_field_process() {
global $woocommerce;
if (!$_POST['Account'])
$woocommerce->add_error( __('Please enter your Account.'.$_POST['Account']));
}
///**
数据库中区域值未更新的问题
//* Update the order meta with field value
//**/
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 ($_POST['Account']) update_post_meta( $order_id, 'Account', esc_attr($_POST['Account']));
}
/**
* Update the user meta with field value
**/
add_action('woocommerce_checkout_update_user_meta', 'my_custom_checkout_field_update_user_meta');
function my_custom_checkout_field_update_user_meta( $user_id ) {
if ($user_id && $_POST['Account']) update_user_meta( $user_id, 'Account', esc_attr($_POST['Account']) );
}
这些函数在我看来相当准确。你确定他们没有更新吗?或者也许你有困难显示它们。
我对它们做了一些调整。首先,要使用WooCommerce发送给函数的$POST
变量,尽管这很简单,因为$\u POST
应该是相同的。其次,当您应该使用sanitize\u text\u field()
时,您正在使用esc\u attr()
。前者用于在HTML属性中显示数据,而后者用于保存前清理。
//* Update the order meta with field value
//**/
add_action('woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta', 10, 2 );
function my_custom_checkout_field_update_order_meta( $order_id, $posted ) {
if ( isset( $posted['Account'] ) ){
update_post_meta( $order_id, 'Account', sanitize_text_field( $posted['Account'] ) );
}
}
/**
* Update the user meta with field value
**/
add_action('woocommerce_checkout_update_user_meta', 'my_custom_checkout_field_update_user_meta', 10, 2 );
function my_custom_checkout_field_update_user_meta( $user_id, $posted ) {
if ( $user_id && isset( $posted['Account'] ) ){
update_user_meta( $user_id, 'Account', sanitize_text_field( $posted['Account'] ) );
}
}
我在单个产品页面中创建了自定义结账按钮。它工作得很好。但是在选择了结帐按钮的变化后,它会重定向到结帐页面,出现以下错误。 这是我的密码 请帮帮我。。
你可以在这个步骤设置导出的文件名和路径。 勾选你想导出的对象名旁的框。如果在对象窗格高亮显示了现有的表,它将会被自动勾选并指定一个默认的文件名和位置。“导出到”文本框内的扩展名会根据在第一步选择的导出类型而改变。 【注意】导出查询结果时,请确保在运行导出向导前保存查询。否则,这里不会显示源对象。 全选按钮 描述 全选或取消全选 选择或取消选择全部源对象。 导出已选择的到相同文件 导出已选择的表到相
你可以在这个步骤设置导出的文件名和路径。点击“更改”按钮来更改默认的导出位置。 勾选你想导出的对象名旁的框。如果在对象窗格高亮显示了现有的对象,它将会被自动勾选。扩展名会根据在第一步选择的导出类型而改变。如果你导出已选择的对象到相同的目标文件,你可以按住 Control 键并点按网格,然后选择“导出已选择的到相同文件”。当文件格式是 Excel,每一个对象会导出为 Excel 文件内的一个工作表。
你可以在这个步骤设置导出的文件名和路径。 勾选你想导出的对象名旁的框。如果在对象窗格高亮显示了现有的表,它将会被自动勾选并指定一个默认的文件名和位置。“导出到”文本框内的扩展名会根据在第一步选择的导出类型而改变。 【注意】导出查询结果时,请确保在运行导出向导前保存查询。否则,这里不会显示源对象。 全选按钮 描述 全选或取消全选 选择或取消选择全部源对象。 导出已选择的到相同文件 导出已选择的表到相
在这里,我可以绑定多选择的选择列表。当我试图保存时,我没有得到一个错误,但它没有保存官员信息。 下面是试图加载页面时出现的错误 处理请求时发生未处理的异常。SQLException:无效的列名'OfficerID'。Microsoft.data.sqlclient.sqlCommand+<>c.b__164_0(任务结果)
本文向大家介绍选择在HTML中的剃刀Html.DropDownListFor()的页面加载上选择了哪个选项?,包括了选择在HTML中的剃刀Html.DropDownListFor()的页面加载上选择了哪个选项?的使用技巧和注意事项,需要的朋友参考一下 速记用于确定在剃刀Html.DropDownListFor()的页面加载上选择了哪个选项。您可以尝试运行以下代码片段-