PluginProbe ʕ •ᴥ•ʔ
Check & Log Email – Easy Email Testing & Mail logging / 1.0.13
Check & Log Email – Easy Email Testing & Mail logging v1.0.13
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 2 years ago Check_Email_Log_Setting_Field.php 2 years ago Check_Email_Log_Setting_Section.php 2 years ago Check_Email_Setting.php 2 years ago Check_Email_Tools_Tab.php 2 years 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