1 <?php
2 3 4 5 6 7 8 9 10 11
12
13 if ( ! defined( 'ABSPATH' ) ) exit;
14
15 16 17 18 19 20
21 function is_woocommerce() {
22 return apply_filters( 'is_woocommerce', ( is_shop() || is_product_taxonomy() || is_product() ) ? true : false );
23 }
24
25 if ( ! function_exists( 'is_shop' ) ) {
26
27 28 29 30 31 32
33 function is_shop() {
34 return ( is_post_type_archive( 'product' ) || is_page( wc_get_page_id( 'shop' ) ) ) ? true : false;
35 }
36 }
37
38 if ( ! function_exists( 'is_product_taxonomy' ) ) {
39
40 41 42 43 44 45
46 function is_product_taxonomy() {
47 return is_tax( get_object_taxonomies( 'product' ) );
48 }
49 }
50
51 if ( ! function_exists( 'is_product_category' ) ) {
52
53 54 55 56 57 58 59
60 function is_product_category( $term = '' ) {
61 return is_tax( 'product_cat', $term );
62 }
63 }
64
65 if ( ! function_exists( 'is_product_tag' ) ) {
66
67 68 69 70 71 72 73
74 function is_product_tag( $term = '' ) {
75 return is_tax( 'product_tag', $term );
76 }
77 }
78
79 if ( ! function_exists( 'is_product' ) ) {
80
81 82 83 84 85 86
87 function is_product() {
88 return is_singular( array( 'product' ) );
89 }
90 }
91
92 if ( ! function_exists( 'is_cart' ) ) {
93
94 95 96 97 98 99
100 function is_cart() {
101 return is_page( wc_get_page_id( 'cart' ) );
102 }
103 }
104
105 if ( ! function_exists( 'is_checkout' ) ) {
106
107 108 109 110 111 112
113 function is_checkout() {
114 return is_page( wc_get_page_id( 'checkout' ) ) ? true : false;
115 }
116 }
117
118 if ( ! function_exists( 'is_checkout_pay_page' ) ) {
119
120 121 122 123 124 125
126 function is_checkout_pay_page() {
127 global $wp;
128
129 return is_checkout() && ! empty( $wp->query_vars['order-pay'] ) ? true : false;
130 }
131 }
132
133 if ( ! function_exists( 'is_wc_endpoint_url' ) ) {
134
135 136 137 138 139 140 141
142 function is_wc_endpoint_url( $endpoint ) {
143 global $wp;
144
145 $wc_endpoints = WC()->query->get_query_vars();
146
147 if ( ! isset( $wc_endpoints[ $endpoint ] ) ) {
148 return false;
149 } else {
150 $endpoint_var = $wc_endpoints[ $endpoint ];
151 }
152
153 return isset( $wp->query_vars[ $endpoint_var ] ) ? true : false;
154 }
155 }
156
157 if ( ! function_exists( 'is_account_page' ) ) {
158
159 160 161 162 163 164
165 function is_account_page() {
166 return is_page( wc_get_page_id( 'myaccount' ) ) || apply_filters( 'woocommerce_is_account_page', false ) ? true : false;
167 }
168 }
169
170 if ( ! function_exists( 'is_order_received_page' ) ) {
171
172 173 174 175 176 177
178 function is_order_received_page() {
179 global $wp;
180
181 return ( is_page( wc_get_page_id( 'checkout' ) ) && isset( $wp->query_vars['order-received'] ) ) ? true : false;
182 }
183 }
184
185 if ( ! function_exists( 'is_add_payment_method_page' ) ) {
186
187 188 189 190 191 192
193 function is_add_payment_method_page() {
194 global $wp;
195
196 return ( is_page( wc_get_page_id( 'myaccount' ) ) && isset( $wp->query_vars['add-payment-method'] ) ) ? true : false;
197 }
198 }
199
200 if ( ! function_exists( 'is_ajax' ) ) {
201
202 203 204 205 206 207
208 function is_ajax() {
209 return defined( 'DOING_AJAX' );
210 }
211 }
212
213 if ( ! function_exists( 'is_store_notice_showing' ) ) {
214
215 216 217 218 219 220
221 function is_store_notice_showing() {
222 return get_option( 'woocommerce_demo_store' ) !== 'no' ? true : false;
223 }
224 }
225
226 if ( ! function_exists( 'is_filtered' ) ) {
227
228 229 230 231 232 233
234 function is_filtered() {
235 global $_chosen_attributes;
236
237 return apply_filters( 'woocommerce_is_filtered', ( sizeof( $_chosen_attributes ) > 0 || ( isset( $_GET['max_price'] ) && isset( $_GET['min_price'] ) ) ) );
238 }
239 }
240
241 if ( ! function_exists( 'taxonomy_is_product_attribute' ) ) {
242
243 244 245 246 247 248 249
250 function taxonomy_is_product_attribute( $name ) {
251 global $wc_product_attributes;
252
253 return taxonomy_exists( $name ) && array_key_exists( $name, (array) $wc_product_attributes );
254 }
255 }
256
257 if ( ! function_exists( 'meta_is_product_attribute' ) ) {
258
259 260 261 262 263 264 265 266
267 function meta_is_product_attribute( $name, $value, $product_id ) {
268 $product = get_product( $product_id );
269
270 if ( $product->product_type != 'variation' ) {
271 return false;
272 }
273
274 $attributes = $product->get_variation_attributes();
275
276 return ( in_array( $name, array_keys( $attributes ) ) && in_array( $value, $attributes[ $name ] ) );
277 }
278 }
279