Completed
Branch FET-8476-powered-by-event-espr... (c8a924)
by
unknown
177:34 queued 161:38
created

EE_Brewing_Regular::__construct()   B

Complexity

Conditions 2
Paths 2

Size

Total Lines 26
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 15
nc 2
nop 0
dl 0
loc 26
rs 8.8571
c 0
b 0
f 0
1
<?php if ( ! defined( 'EVENT_ESPRESSO_VERSION' ) ) {
2
	exit( 'No direct script access allowed' );
3
}
4
/**
5
 * the purpose of this file is to simply contain any action/filter hook callbacks etc for specific aspects of EE
6
 * related to caffeinated (regular) use.  Before putting any code in here, First be certain that it isn't better to
7
 * define and use the hook in a specific caffeinated/whatever class or file.
8
 */
9
// defined some new constants related to caffeinated folder
10
define( 'EE_CAF_URL', EE_PLUGIN_DIR_URL . 'caffeinated/' );
11
define( 'EE_CAF_CORE', EE_CAFF_PATH . 'core' . DS );
12
define( 'EE_CAF_LIBRARIES', EE_CAF_CORE . 'libraries' . DS );
13
define( 'EE_CAF_PAYMENT_METHODS', EE_CAFF_PATH . 'payment_methods' . DS );
14
15
16
17
/**
18
 * EE_Brewing_Regular class.  Just a wrapper to help namespace activity for the functionality of this file.
19
 *
20
 * @package        Event Espresso
21
 * @subpackage     /caffeinated/brewing_regular.php
22
 * @author         Darren Ethier
23
 */
24
class EE_Brewing_Regular extends EE_BASE {
25
26
	/**
27
	 * EE_Brewing_Regular constructor.
28
	 */
29
	public function __construct() {
30
		if ( defined( 'EE_CAFF_PATH' ) ) {
31
			// activation
32
			add_action( 'AHEE__EEH_Activation__initialize_db_content', array( $this, 'initialize_caf_db_content' ) );
33
			// load caff init
34
			add_action( 'AHEE__EE_System__set_hooks_for_core', array( $this, 'caffeinated_init' ) );
35
			// remove the "powered by" credit link from receipts and invoices
36
			add_filter( 'FHEE_EE_Html_messenger__add_powered_by_credit_link_to_receipt_and_invoice', '__return_false' );
37
			// add caffeinated modules
38
			add_filter(
39
				'FHEE__EE_Config__register_modules__modules_to_register',
40
				array( $this, 'caffeinated_modules_to_register' )
41
			);
42
			// load caff scripts
43
			add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_caffeinated_scripts' ), 10 );
44
			add_filter( 'FHEE__EE_Registry__load_helper__helper_paths', array( $this, 'caf_helper_paths' ), 10 );
45
			add_filter(
46
				'FHEE__EE_Payment_Method_Manager__register_payment_methods__payment_methods_to_register',
47
				array( $this, 'caf_payment_methods' )
48
			);
49
			// caffeinated constructed
50
			do_action( 'AHEE__EE_Brewing_Regular__construct__complete' );
51
			//seeing how this is caf, which isn't put on WordPress.org, we can have affiliate links without a disclaimer
52
			add_filter( 'FHEE__ee_show_affiliate_links', '__return_false' );
53
		}
54
	}
55
56
57
58
	/**
59
	 * callback for the FHEE__EE_Registry__load_helper__helper_paths filter to add the caffeinated paths
60
	 *
61
	 * @param array $paths original helper paths array
62
	 * @return array             new array of paths
63
	 */
64
	public function caf_helper_paths( $paths ) {
65
		$paths[] = EE_CAF_CORE . 'helpers' . DS;
66
		return $paths;
67
	}
68
69
70
71
	/**
72
	 * Upon brand-new activation, if this is a new activation of CAF, we want to add
73
	 * some global prices that will show off EE4's capabilities. However, if they're upgrading
74
	 * from 3.1, or simply EE4.x decaf, we assume they don't want us to suddenly introduce these extra prices.
75
	 * This action should only be called when EE 4.x.0.P is initially activated.
76
	 * Right now the only CAF content are these global prices. If there's more in the future, then
77
	 * we should probably create a caf file to contain it all instead just a function like this.
78
	 * Right now, we ASSUME the only price types in the system are default ones
79
	 *
80
	 * @global wpdb $wpdb
81
	 */
82
	function initialize_caf_db_content() {
83
		global $wpdb;
84
		//use same method of getting creator id as the version introducing the change
85
		$default_creator_id = apply_filters( 'FHEE__EE_DMS_Core_4_5_0__get_default_creator_id', get_current_user_id() );
86
		$price_type_table = $wpdb->prefix . "esp_price_type";
87
		$price_table = $wpdb->prefix . "esp_price";
88
		if ( EEH_Activation::table_exists( $price_type_table ) ) {
89
			$SQL = 'SELECT COUNT(PRT_ID) FROM ' . $price_type_table . ' WHERE PBT_ID=4';//include trashed price types
90
			$tax_price_type_count = $wpdb->get_var( $SQL );
91
			if ( $tax_price_type_count <= 1 ) {
92
				$wpdb->insert(
93
					$price_type_table,
94
					array(
95
						'PRT_name'       => __( "Regional Tax", "event_espresso" ),
96
						'PBT_ID'         => 4,
97
						'PRT_is_percent' => true,
98
						'PRT_order'      => 60,
99
						'PRT_deleted'    => false,
100
						'PRT_wp_user'    => $default_creator_id,
101
					),
102
					array(
103
						'%s',//PRT_name
104
						'%d',//PBT_id
105
						'%d',//PRT_is_percent
106
						'%d',//PRT_order
107
						'%d',//PRT_deleted
108
						'%d', //PRT_wp_user
109
					)
110
				);
111
				//federal tax
112
				$result = $wpdb->insert(
113
					$price_type_table,
114
					array(
115
						'PRT_name'       => __( "Federal Tax", "event_espresso" ),
116
						'PBT_ID'         => 4,
117
						'PRT_is_percent' => true,
118
						'PRT_order'      => 70,
119
						'PRT_deleted'    => false,
120
						'PRT_wp_user'    => $default_creator_id,
121
					),
122
					array(
123
						'%s',//PRT_name
124
						'%d',//PBT_id
125
						'%d',//PRT_is_percent
126
						'%d',//PRT_order
127
						'%d',//PRT_deleted
128
						'%d' //PRT_wp_user
129
					)
130
				);
131
				if ( $result ) {
132
					$wpdb->insert(
133
						$price_table,
134
						array(
135
							'PRT_ID'         => $wpdb->insert_id,
136
							'PRC_amount'     => 15.00,
137
							'PRC_name'       => __( "Sales Tax", "event_espresso" ),
138
							'PRC_desc'       => '',
139
							'PRC_is_default' => true,
140
							'PRC_overrides'  => null,
141
							'PRC_deleted'    => false,
142
							'PRC_order'      => 50,
143
							'PRC_parent'     => null,
144
							'PRC_wp_user'    => $default_creator_id,
145
						),
146
						array(
147
							'%d',//PRT_id
148
							'%f',//PRC_amount
149
							'%s',//PRC_name
150
							'%s',//PRC_desc
151
							'%d',//PRC_is_default
152
							'%d',//PRC_overrides
153
							'%d',//PRC_deleted
154
							'%d',//PRC_order
155
							'%d',//PRC_parent
156
							'%d' //PRC_wp_user
157
						)
158
					);
159
				}
160
			}
161
		}
162
	}
163
164
165
166
	/**
167
	 *    caffeinated_modules_to_register
168
	 *
169
	 * @access public
170
	 * @param array $modules_to_register
171
	 * @return array
172
	 */
173
	public function caffeinated_modules_to_register( $modules_to_register = array() ) {
174
		if ( is_readable( EE_CAFF_PATH . 'modules' ) ) {
175
			$caffeinated_modules_to_register = glob( EE_CAFF_PATH . 'modules' . DS . '*', GLOB_ONLYDIR );
176
			if ( is_array( $caffeinated_modules_to_register ) && ! empty( $caffeinated_modules_to_register ) ) {
177
				$modules_to_register = array_merge( $modules_to_register, $caffeinated_modules_to_register );
178
			}
179
		}
180
		return $modules_to_register;
181
	}
182
183
184
185
	public function caffeinated_init() {
186
		// EE_Register_CPTs hooks
187
		add_filter( 'FHEE__EE_Register_CPTs__get_taxonomies__taxonomies', array( $this, 'filter_taxonomies' ), 10 );
188
		add_filter( 'FHEE__EE_Register_CPTs__get_CPTs__cpts', array( $this, 'filter_cpts' ), 10 );
189
		add_filter( 'FHEE__EE_Admin__get_extra_nav_menu_pages_items', array( $this, 'nav_metabox_items' ), 10 );
190
		EE_Registry::instance()->load_file( EE_CAFF_PATH, 'EE_Caf_Messages', 'class', array(), false );
191
		// caffeinated_init__complete hook
192
		do_action( 'AHEE__EE_Brewing_Regular__caffeinated_init__complete' );
193
	}
194
195
196
197
	public function enqueue_caffeinated_scripts() {
198
		// sound of crickets...
199
	}
200
201
202
203
	/**
204
	 * callbacks below here
205
	 *
206
	 * @param array $taxonomy_array
207
	 * @return array
208
	 */
209
	public function filter_taxonomies( array $taxonomy_array ) {
210
		$taxonomy_array['espresso_venue_categories']['args']['show_in_nav_menus'] = true;
211
		return $taxonomy_array;
212
	}
213
214
215
216
	/**
217
	 * @param array $cpt_array
218
	 * @return mixed
219
	 */
220
	public function filter_cpts( array $cpt_array ) {
221
		$cpt_array['espresso_venues']['args']['show_in_nav_menus'] = true;
222
		return $cpt_array;
223
	}
224
225
226
227
	/**
228
	 * @param array $menuitems
229
	 * @return array
230
	 */
231 View Code Duplication
	public function nav_metabox_items( array $menuitems ) {
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
232
		$menuitems[] = array(
233
			'title'       => __( 'Venue List', 'event_espresso' ),
234
			'url'         => get_post_type_archive_link( 'espresso_venues' ),
235
			'description' => __( 'Archive page for all venues.', 'event_espresso' ),
236
		);
237
		return $menuitems;
238
	}
239
240
241
242
	/**
243
	 * Adds the payment methods in {event-espresso-core}/caffeinated/payment_methods
244
	 *
245
	 * @param array $payment_method_paths
246
	 * @return array values are folder paths to payment method folders
247
	 */
248
	public function caf_payment_methods( $payment_method_paths ) {
249
		$caf_payment_methods_paths = glob( EE_CAF_PAYMENT_METHODS . '*', GLOB_ONLYDIR );
250
		$payment_method_paths = array_merge( $payment_method_paths, $caf_payment_methods_paths );
251
		return $payment_method_paths;
252
	}
253
}
254
255
256
257
$brewing = new EE_Brewing_Regular();
258