-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwp-activecampaign.php
133 lines (111 loc) · 2.65 KB
/
wp-activecampaign.php
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
131
132
133
<?php
/**
* Plugin Name: WP Active Campaign
* Plugin URI: https://wpsuperstar.com/
* Description: Active Campaign API using WordPress Requests
* Version: 0.0.1
* Author: Yojance Rabelo
* Author URI: https://wpsuperstar.com/
*/
// Runs when the plugin is activated.
register_activation_hook( __FILE__, 'WP_ActiveCampaign::plugin_activation' );
// Runs when the plugin is deactivated.
register_deactivation_hook( __FILE__, 'WP_ActiveCampaign::plugin_deactivation' );
/**
* Class WP_ActiveCampaign
*/
class WP_ActiveCampaign {
/**
* Instance of this class
*
* @var $instance
*/
protected static $instance;
/**
* WP_ActiveCampaign constructor.
*/
public function __construct() {
$this->includes();
}
/**
* What we need to make everything work
*/
public function includes() {
require_once __DIR__ . '/includes/class-wp-client.php';
require_once __DIR__ . '/includes/class-resource.php';
require_once __DIR__ . '/includes/class-contacts.php';
require_once __DIR__ . '/includes/class-custom-fields.php';
require_once __DIR__ . '/includes/class-tags.php';
require_once __DIR__ . '/includes/class-addresses.php';
}
/**
* Retrieve instance of this class
*
* @return WP_ActiveCampaign
*/
public static function instance(): WP_ActiveCampaign {
if ( null === self::$instance ) {
self::$instance = new self();
}
return self::$instance;
}
/**
* Runs when the plugin is activated
*/
public static function plugin_activation() {
}
/**
* Runs when the plugin is de-activated
*/
public static function plugin_deactivation() {
}
/**
* Get the plugin url.
*
* @return string
*/
public static function plugin_url(): string {
return untrailingslashit( plugins_url( '/', __FILE__ ) );
}
/**
* Get the plugin path.
*
* @return string
*/
public static function plugin_path(): string {
return untrailingslashit( plugin_dir_path( __FILE__ ) );
}
/**
* Get Ajax URL.
*
* @return string
*/
public static function ajax_url(): string {
return admin_url( 'admin-ajax.php', 'relative' );
}
/**
* What type of request is this?
*
* @param string $type admin, ajax, cron or frontend.
*
* @return bool
*/
public static function is_request( $type ): bool {
switch ( $type ) {
case 'admin':
return is_admin();
case 'ajax':
return defined( 'DOING_AJAX' );
case 'cron':
return defined( 'DOING_CRON' );
case 'frontend':
return ( ! is_admin() || defined( 'DOING_AJAX' ) ) && ! defined( 'DOING_CRON' );
}
return false;
}
}
add_action( 'plugins_loaded', 'load_active_campaign' );
//phpcs:ignore
function load_active_campaign() {
return WP_ActiveCampaign::instance();
}