class-component-mailchimp-signup.php
1.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
/**
* @package WPSEO\Admin\ConfigurationUI
*/
/**
* Represents the mailchimp signup components.
*/
class WPSEO_Config_Component_Mailchimp_Signup implements WPSEO_Config_Component {
const META_NAME = 'wpseo-has-mailchimp-signup';
/**
* Gets the component identifier.
*
* @return string
*/
public function get_identifier() {
return 'MailchimpSignup';
}
/**
* Gets the field.
*
* @return WPSEO_Config_Field
*/
public function get_field() {
return new WPSEO_Config_Field_Mailchimp_Signup();
}
/**
* Get the data for the field.
*
* @return mixed
*/
public function get_data() {
$data = array(
'hasSignup' => $this->has_mailchimp_signup(),
);
return $data;
}
/**
* Save data
*
* @param array $data Data containing changes.
*
* @return mixed
*/
public function set_data( $data ) {
$has_saved = false;
if ( ! empty( $data['hasSignup'] ) ) {
// Saves the user meta.
update_user_meta( get_current_user_id(), self::META_NAME, true );
$has_saved = ( $data['hasSignup'] === $this->has_mailchimp_signup() );
}
// Collect results to return to the configurator.
$results = array(
'hasSignup' => $has_saved,
);
return $results;
}
/**
* Checks if the user has entered his email for mailchimp already.
*
* @return bool
*/
protected function has_mailchimp_signup() {
$user_meta = get_user_meta( get_current_user_id(), self::META_NAME, true );
return ( ! empty( $user_meta ) );
}
}