php - 使自定义字段成为必需的 WooCommerce
问题描述
如果我没有正确地问这个问题,请多多包涵。我正在尝试修改 WooCommerce 自定义字段以使其成为必需。
功能如下:
public function delivery_checkout_field( $checkout )
{
echo '<div class="checkout-delivery" id="delivery_checkout_field">';
echo '<input class="js-picker-object" type="hidden" value="' . esc_attr( json_encode( $this->delivery_get_picker_object() ) ) . '" />';
echo '<h3 class="with-description">' . __( 'Delivery Schedule', 'gastro-core' ) . '</h3>';
echo '<p class="description">Enter your desired delivery time or leave blank, if you don\'t have one.</p>';
woocommerce_form_field( 'delivery_date', array(
'type' => 'text',
'class' => array( 'delivery-field form-row-first' ),
'label' => __( 'Delivery Date' ),
'placeholder' => __( 'Enter delivery date.' ),
), $checkout->get_value( 'delivery_date' ) );
woocommerce_form_field( 'delivery_time', array(
'type' => 'text',
'class' => array( 'delivery-field form-row-last' ),
'label' => __( 'Delivery Time' ),
'placeholder' => __( 'Enter delivery time.' ),
), $checkout->get_value( 'delivery_time' ) );
echo '</div>';
}
此部分保存字段。
// Save delivery data
public function delivery_checkout_field_update( $order_id )
{
if ( !empty( $_POST['delivery_date'] ) ) {
update_post_meta(
$order_id,
'Delivery Date',
sanitize_text_field( $_POST['delivery_date'] )
);
}
if ( !empty( $_POST['delivery_time'] ) ) {
update_post_meta(
$order_id,
'Delivery Time',
sanitize_text_field( $_POST['delivery_time'] )
);
}
}
解决方案
对于所需的 HTML5 属性和其他自定义属性,woocommerce 函数具有 custom_attributes 选项。
'custom_attributes' => array( 'required' => 'required' )
推荐阅读
- vue.js - 尝试导入 sass 模块时,如何在 Vue CLI 中使用包含路径?
- javascript - 带有下拉菜单的响应式 CSS Topnav 在小屏幕上不起作用
- python - 在急切执行期间不支持会话关键字参数。你通过了:{'learning_rate': 1e-05}
- c# - 行为类似于线程的 C# 可重用或持久任务
- java - 找不到符号 ds.setMaxActive(MAX_ACTIVE);
- javascript - Bootstrap 4 模态 PHP 动态变量访问
- algorithm - 给定 N 个具有电影偏好的用户,检索至少 K 个用户偏好的电影列表
- codenameone - 多按钮组件之间的填充
- flutter-animation - 如何通过 Flutter PageView 的页面捕捉滚动多个页面?
- python - 通过 Python 节点将字典从 LabVIEW 传递到 Python 脚本