在WooCommerce中使用自定义设置选项卡时,例如:
add_filter('woocommerce_settings_tabs_array', 'add_my_custom_tab', 50);
function add_my_custom_tab($settings_tabs) {
$settings_tabs['my_custom_tab'] = __('My Custom Tab', 'my-custom-tab');
return $settings_tabs;
}
add_action('woocommerce_settings_tabs_my_custom_tab', 'my_custom_tab');
function my_custom_tab() {
woocommerce_admin_fields(get_custom_settings());
}
add_action('woocommerce_update_options_my_custom_tab', 'update_my_custom_tab_settings');
function update_my_custom_tab_settings() {
woocommerce_update_options(get_custom_settings());
}
function get_custom_settings() {
$settings = array(
'section_title' => array(
'name' => __('Custom Options', 'woocommerce-my-custom-tab'),
'type' => 'title',
'desc' => '',
'id' => 'wc_custom_tab'
),
'example_input' => array(
'name' => __('My Input', 'woocommerce-my-custom-tab'),
'type' => 'text',
'desc' => '',
'id' => 'wc_my_input'
),
'section_end' => array(
'type' => 'sectionend',
'id' => 'wc_section_end'
)
);
return apply_filters('wc_my_custom_tab_settings', $settings);
}
如何在允许example_input字段保存到数据库之前对它执行自定义验证,并在需要时抛出一个错误来告诉用户输入有什么问题?
3条答案
按热度按时间xv8emn3q1#
您可以通过添加html5 required属性到字段中来使字段成为必填字段。
但是在你的情况下,如果你想在字段更新时显示错误消息,你可以这样做。添加过滤器
woocommerce_admin_settings_sanitize_option_<option_name>
编辑
你可以像这样遍历所有的选项
xbp102n02#
我试图满足您的要求与简单的过滤器选项可在吴商务。
我只添加了一个过滤器和基本的登录过滤器。过滤器名称为
woocommerce_admin_settings_sanitize_option
你需要在这个过滤器上应用你的逻辑,它会根据你的需要做一切事情。
你可以防止保存的选项,如果有一个错误,通过设置空值,然后显示该字段的通知太。
我已经aded一个自定义属性做验证和属性的名称是'自定义_验证'如果有一个空字段,然后下面的属性值防止存储数据。
将整个代码片段放在functions.php中并开始跟踪流。希望你能得到它
}
2ekbmq323#
不确定在
woocommerce_admin_settings_sanitize_option_
内部打印带有admin_notices
钩子的东西是不是一个好主意。我很确定我们可以使用
WC_Admin_Settings
的add_error()
静态方法来代替。同样的例子,但与我的方法:
关于WooCommerce自定义设置验证的更多信息:https://rudrastyh.com/woocommerce/custom-settings-validation.html