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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
<?php
namespace WPForms\Providers\Provider;
/** * Class Status gives ability to check/work with provider statuses. * Might be used later to track Provider errors on data-delivery. * * @since 1.4.8 */ class Status {
/** * Provider identifier, its slug. * * @since 1.4.8 * * @var string */ private $provider;
/** * Form data and settings. * * @since 1.4.8 * * @var array */ protected $form_data = array();
/** * Status constructor. * * @param string $provider Provider slug. */ public function __construct( $provider ) { $this->provider = sanitize_key( (string) $provider ); }
/** * Provide ability to statically init the object. * Useful for inline-invocations. * * @example: Status::init( 'drip' )->is_ready(); * * @since 1.4.8 * @since 1.5.9 Added a check on provider. * * @param string $provider Provider slug. * * @return \WPForms\Providers\Provider\Status */ public static function init( $provider ) { static $instance;
if ( ! $instance || $provider !== $instance->provider ) { $instance = new self( $provider ); }
return $instance; }
/** * Check whether the defined provider is configured or not. * "Configured" means has an account, that might be checked/updated on Settings > Integrations. * * @since 1.4.8 * * @return bool */ public function is_configured() {
$options = \wpforms_get_providers_options();
// We meed to leave this filter for BC. $is_configured = \apply_filters( 'wpforms_providers_' . $this->provider . '_configured', ! empty( $options[ $this->provider ] ) ? true : false );
// Use this filter to change the configuration status of the provider. return apply_filters( 'wpforms_providers_status_is_configured', $is_configured, $this->provider ); }
/** * Check whether the defined provider is connected to some form. * "Connected" means it has a Connection in Form Builder > Providers > Provider tab. * * @since 1.4.8 * * @param int $form_id Form ID to check the status against. * * @return bool */ public function is_connected( $form_id ) {
$is_connected = false;
$this->form_data = \wpforms()->form->get( (int) $form_id, array( 'content_only' => true, ) );
if ( ! empty( $this->form_data['providers'][ $this->provider ] ) || ! empty( $this->form_data['payments'][ $this->provider ] ) ) { $is_connected = true; }
return apply_filters( 'wpforms_providers_status_is_connected', $is_connected, $this->provider ); }
/** * Is the current provider ready to be used? * It means both configured and connected. * * @since 1.4.8 * * @param int $form_id Form ID to check the status against. * * @return bool */ public function is_ready( $form_id ) { return $this->is_configured() && $this->is_connected( $form_id ); }
}
|