PluginProbe ʕ •ᴥ•ʔ
Check & Log Email – Easy Email Testing & Mail logging / 2.0.15
Check & Log Email – Easy Email Testing & Mail logging v2.0.15
2.0.15 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 5 days ago Check_Email_Log_Setting_Field.php 5 days ago Check_Email_Log_Setting_Section.php 5 days ago Check_Email_Setting.php 5 days ago Check_Email_Tools_Tab.php 5 days 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