Skip to content
Snippets Groups Projects
Commit ffb5a341 authored by Lucas García's avatar Lucas García
Browse files

feat: abstract settings sanitization and menu render buffer

parent 6315bbcb
No related branches found
No related tags found
No related merge requests found
Subproject commit 460e1e1e16be94f5e5edc744dc898b4883d50424
Subproject commit 34b4bd64c600e8fbdc32e4600c212e34449ef23c
......@@ -8,9 +8,9 @@ class Menu extends BaseMenu
{
static protected $settings_class = '\WPCT_ERP_FORMS\Settings';
protected function render_page()
protected function render_page($echo = true)
{
$output = parent::render_page();
$output = parent::render_page(false);
echo apply_filters('wpct_erp_forms_menu_page_content', $output);
}
}
......@@ -96,7 +96,7 @@ class Settings extends BaseSettings
'endpoint' => '/jsonrpc',
'user' => 'admin',
'password' => 'admin',
'database' => 'default',
'database' => 'erp',
'forms' => [
[
'form_id' => 0,
......
......@@ -103,10 +103,6 @@ class Wpct_Erp_Forms extends BasePlugin
return $this->populate_refs($setting);
}, 10, 1);
add_filter('pre_update_option', function ($value, $option, $from) {
return $this->sanitize_option($option, $value, true);
}, 10, 3);
add_action('updated_option', function ($option, $from, $to) {
$this->on_option_updated($option, $to);
}, 90, 3);
......@@ -180,31 +176,9 @@ class Wpct_Erp_Forms extends BasePlugin
return $setting;
}
private function sanitize_option($option, $value)
{
$settings = ['wpct-erp-forms_rest-api', 'wpct-erp-forms_rpc-api']; // (Settings::get_instance())->get_settings();
if (in_array($option, $settings)) {
[$group, $setting] = explode('_', $option);
$default = Settings::get_default($group, $setting);
if (empty($value)) {
return $default;
}
$missing_keys = array_diff(array_keys($default), array_keys($value));
if (count($missing_keys) > 0) {
foreach ($missing_keys as $key) {
$value[$key] = $default[$key];
}
}
}
return $value;
}
private function on_option_updated($option, $value)
{
$settings = ['wpct-erp-forms_rest-api', 'wpct-erp-forms_rpc-api']; // (Settings::get_instance())->get_settings();
$settings = ['wpct-erp-forms_rest-api', 'wpct-erp-forms_rpc-api'];
if (in_array($option, $settings)) {
$refs = $this->get_form_refs();
foreach ($value['forms'] as $form) {
......
Subproject commit c955b306fcefe3f9b09f692b73dde3bf33b9aaf6
Subproject commit 7cf6a3af0a073bdc52bca3725210e81c5d550ee9
Subproject commit e457435f6ecb58ca5c89b6af3787fc323ad60b36
Subproject commit e652743b79bca51fa05a032486ba57193f42a496
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment