PluginProbe ʕ •ᴥ•ʔ
Check & Log Email – Easy Email Testing & Mail logging / trunk
Check & Log Email – Easy Email Testing & Mail logging vtrunk
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 month ago Check_Email_Log_Setting_Field.php 1 month ago Check_Email_Log_Setting_Section.php 1 month ago Check_Email_Setting.php 1 month ago Check_Email_Tools_Tab.php 1 month 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 // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
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