PluginProbe ʕ •ᴥ•ʔ
Check & Log Email – Easy Email Testing & Mail logging / 2.0.1
Check & Log Email – Easy Email Testing & Mail logging v2.0.1
1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 2.0 2.0.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.13.1 2.0.13.2 2.0.14 2.0.2 2.0.3 2.0.4 2.0.5 2.0.5.1 2.0.6 2.0.7 2.0.8 2.0.9 trunk 0.5.7 0.6.0 0.6.1 0.6.2 1.0.0 1.0.1 1.0.10 1.0.11 1.0.12 1.0.12.1 1.0.13 1.0.13.1 1.0.2 1.0.3
check-email / include / Core / UI / Setting / Check_Email_Setting.php
check-email / include / Core / UI / Setting Last commit date
Check_Email_Core_Setting.php 1 year ago Check_Email_Log_Setting_Field.php 1 year ago Check_Email_Log_Setting_Section.php 1 year ago Check_Email_Setting.php 1 year ago Check_Email_Tools_Tab.php 1 year ago
Check_Email_Setting.php
85 lines
1 <?php namespace CheckEmail\Core\UI\Setting;
2
3 defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
4
5 /**
6 * Check Email Log Setting.
7 */
8 abstract class Check_Email_Setting {
9
10 protected $section;
11
12 public function __construct() {
13 $this->section = new Check_Email_Log_Setting_Section();
14
15 $this->initialize();
16
17 $this->section->fields = $this->get_fields();
18 $this->section->callback = array( $this, 'render' );
19 $this->section->sanitize_callback = array( $this, 'sanitize' );
20 }
21
22 public function load() {
23 add_filter( 'check_email_setting_sections', array( $this, 'register' ) );
24 }
25
26 public function register( $sections ) {
27 $sections[] = $this->section;
28
29 return $sections;
30 }
31
32 public function get_value() {
33 $value = get_option( $this->section->option_name );
34
35 return wp_parse_args( $value, $this->section->default_value );
36 }
37
38 abstract protected function initialize();
39
40 protected function get_fields() {
41 return $this->build_fields();
42 }
43
44 public function render() {
45 return;
46 }
47
48 public function sanitize( $values ) {
49 if ( ! is_array( $values ) ) {
50 return array();
51 }
52
53 $values = wp_parse_args( $values, $this->section->default_value );
54 $sanitized_values = array();
55
56 foreach ( $this->section->field_labels as $field_id => $label ) {
57 $callback = array( $this, 'sanitize_' . $field_id );
58
59 if ( is_callable( $callback ) ) {
60 $sanitized_values[ $field_id ] = call_user_func( $callback, $values[ $field_id ] );
61 } else {
62 $sanitized_values[ $field_id ] = $values[ $field_id ];
63 }
64 }
65
66 return apply_filters('check_email_settings_sanitize', $values, $sanitized_values);
67 }
68
69 protected function build_fields() {
70 $fields = array();
71
72 foreach ( $this->section->field_labels as $field_id => $label ) {
73 $field = new Check_Email_Log_Setting_Field();
74 $field->id = $field_id;
75 $field->title = $label;
76 $field->args = array( 'id' => $field_id, 'class' => 'check_email_'.$field_id );
77 $field->callback = array( $this, 'render_' . $field_id . '_settings' );
78
79 $fields[] = $field;
80 }
81
82 return $fields;
83 }
84 }
85