Version Description
- Released: Mar 06, 2017 = New: Support to WooCommerce 2.7 RC 1 Update: Plugin Core Update: Languages files
Download this release
Release Info
Developer | yithemes |
Plugin | YITH WooCommerce Ajax Search |
Version | 1.5.0 |
Comparing to | |
See all releases |
Code changes from version 1.4.1 to 1.5.0
- README.txt +7 -2
- class.yith-wcas.php +2 -2
- functions.yith-wcas.php +7 -4
- init.php +2 -2
- languages/yith-woocommerce-ajax-search-it_IT.mo +0 -0
- languages/yith-woocommerce-ajax-search-it_IT.po +2 -2
- languages/yith-woocommerce-ajax-search.pot +1 -1
- plugin-fw/init.php +3 -3
- plugin-fw/lib/yit-cpt-unlimited.php +2 -2
- plugin-fw/lib/yit-metabox.php +24 -5
- plugin-fw/lib/yit-plugin-panel-wc.php +1 -1
- plugin-fw/lib/yit-plugin-panel.php +2 -2
- plugin-fw/licence/lib/yit-licence.php +4 -3
- plugin-fw/yit-plugin.php +16 -0
- plugin-fw/yit-woocommerce-compatibility.php +688 -0
- screenshot-1.png +0 -0
- screenshot-2.png +0 -0
README.txt
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
|
3 |
Contributors: yithemes
|
4 |
Tags: woocommerce search by sku, woocommerce search results, woocommerce search shortcode, woocommerce search page, woocommerce search form, woocommerce search filter, woocommerce search products, woocommerce search content, woocommerce search autocomplete, woocommerce advanced search, woocommerce search category, woocommerce search product attributes, woocommerce search by tag, woocommerce search by brand, woocommerce predictive, woocommerce live search, woocommerce single product search, woocommerce site search, woocommerce search tex, tajax, search, woocommerce, products, themes, yit, e-commerce, shop, yith, ajax search, instant search, premium, yithemes, autocomplete, autosuggest, better search, category search, custom search, highlight terms, Live Search, Predictive Search, product search, relevant search, search highlight, search product, suggest, typeahead, WooCommerce Plugin, woocommerce product search, woocommerce search, wordpress ecommerce
|
5 |
-
Requires at least:
|
6 |
Tested up to: 4.6.1
|
7 |
-
Stable tag: 1.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -138,6 +138,11 @@ If you have created your own language pack for YITH WooCommerce Ajax Search, or
|
|
138 |
2. YITH WooCommerce Ajax Search in operation displaying WooCommerce search results
|
139 |
|
140 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
141 |
= 1.4.1 - Released: Oct 17, 2016 =
|
142 |
* Added: Option to save the autocomplete results in a transient
|
143 |
* Updated: Plugin Framework
|
2 |
|
3 |
Contributors: yithemes
|
4 |
Tags: woocommerce search by sku, woocommerce search results, woocommerce search shortcode, woocommerce search page, woocommerce search form, woocommerce search filter, woocommerce search products, woocommerce search content, woocommerce search autocomplete, woocommerce advanced search, woocommerce search category, woocommerce search product attributes, woocommerce search by tag, woocommerce search by brand, woocommerce predictive, woocommerce live search, woocommerce single product search, woocommerce site search, woocommerce search tex, tajax, search, woocommerce, products, themes, yit, e-commerce, shop, yith, ajax search, instant search, premium, yithemes, autocomplete, autosuggest, better search, category search, custom search, highlight terms, Live Search, Predictive Search, product search, relevant search, search highlight, search product, suggest, typeahead, WooCommerce Plugin, woocommerce product search, woocommerce search, wordpress ecommerce
|
5 |
+
Requires at least: 4.0.0
|
6 |
Tested up to: 4.6.1
|
7 |
+
Stable tag: 1.5.0
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
138 |
2. YITH WooCommerce Ajax Search in operation displaying WooCommerce search results
|
139 |
|
140 |
== Changelog ==
|
141 |
+
= 1.5.0 - Released: Mar 06, 2017 =
|
142 |
+
New: Support to WooCommerce 2.7 RC 1
|
143 |
+
Update: Plugin Core
|
144 |
+
Update: Languages files
|
145 |
+
|
146 |
= 1.4.1 - Released: Oct 17, 2016 =
|
147 |
* Added: Option to save the autocomplete results in a transient
|
148 |
* Updated: Plugin Framework
|
class.yith-wcas.php
CHANGED
@@ -55,7 +55,7 @@ if ( !class_exists( 'YITH_WCAS' ) ) {
|
|
55 |
$this->obj = new YITH_WCAS_Frontend( $this->version );
|
56 |
}
|
57 |
}
|
58 |
-
|
59 |
// actions
|
60 |
add_action( 'widgets_init', array( $this, 'registerWidgets' ) );
|
61 |
|
@@ -170,7 +170,7 @@ if ( !class_exists( 'YITH_WCAS' ) ) {
|
|
170 |
$product = wc_get_product( $post );
|
171 |
|
172 |
$suggestions[] = apply_filters( 'yith_wcas_suggestion', array(
|
173 |
-
'id' => $product->
|
174 |
'value' => strip_tags( $product->get_title() ),
|
175 |
'url' => $product->get_permalink()
|
176 |
), $product );
|
55 |
$this->obj = new YITH_WCAS_Frontend( $this->version );
|
56 |
}
|
57 |
}
|
58 |
+
include_once( YITH_WCAS_DIR.'plugin-fw/yit-woocommerce-compatibility.php' );
|
59 |
// actions
|
60 |
add_action( 'widgets_init', array( $this, 'registerWidgets' ) );
|
61 |
|
170 |
$product = wc_get_product( $post );
|
171 |
|
172 |
$suggestions[] = apply_filters( 'yith_wcas_suggestion', array(
|
173 |
+
'id' => $product->get_id(),
|
174 |
'value' => strip_tags( $product->get_title() ),
|
175 |
'url' => $product->get_permalink()
|
176 |
), $product );
|
functions.yith-wcas.php
CHANGED
@@ -7,8 +7,11 @@
|
|
7 |
* @version 1.1.1
|
8 |
*/
|
9 |
|
10 |
-
if ( !defined( 'YITH_WCAS' ) ) {
|
11 |
-
|
12 |
-
|
13 |
-
|
|
|
|
|
|
|
14 |
}
|
7 |
* @version 1.1.1
|
8 |
*/
|
9 |
|
10 |
+
if ( ! defined( 'YITH_WCAS' ) ) {
|
11 |
+
exit;
|
12 |
+
} // Exit if accessed directly
|
13 |
+
function getmicrotime() {
|
14 |
+
list( $usec, $sec ) = explode( " ", microtime() );
|
15 |
+
|
16 |
+
return ( (float) $usec + (float) $sec );
|
17 |
}
|
init.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: YITH WooCommerce Ajax Search
|
4 |
* Plugin URI: http://yithemes.com/
|
5 |
* Description: YITH WooCommerce Ajax Search allows your users to search products in real time.
|
6 |
-
* Version: 1.
|
7 |
* Author: YITHEMES
|
8 |
* Author URI: http://yithemes.com/
|
9 |
* Text Domain: yith-woocommerce-ajax-search
|
@@ -65,7 +65,7 @@ register_activation_hook( __FILE__, 'yith_plugin_registration_hook' );
|
|
65 |
if ( defined( 'YITH_WCAS_VERSION' ) ){
|
66 |
return;
|
67 |
}else{
|
68 |
-
define( 'YITH_WCAS_VERSION', '1.
|
69 |
}
|
70 |
|
71 |
if ( ! defined( 'YITH_WCAS_FREE_INIT' ) ) {
|
3 |
* Plugin Name: YITH WooCommerce Ajax Search
|
4 |
* Plugin URI: http://yithemes.com/
|
5 |
* Description: YITH WooCommerce Ajax Search allows your users to search products in real time.
|
6 |
+
* Version: 1.5.0
|
7 |
* Author: YITHEMES
|
8 |
* Author URI: http://yithemes.com/
|
9 |
* Text Domain: yith-woocommerce-ajax-search
|
65 |
if ( defined( 'YITH_WCAS_VERSION' ) ){
|
66 |
return;
|
67 |
}else{
|
68 |
+
define( 'YITH_WCAS_VERSION', '1.5.0' );
|
69 |
}
|
70 |
|
71 |
if ( ! defined( 'YITH_WCAS_FREE_INIT' ) ) {
|
languages/yith-woocommerce-ajax-search-it_IT.mo
CHANGED
Binary file
|
languages/yith-woocommerce-ajax-search-it_IT.po
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: YITH WooCommerce Ajax Search Premium\n"
|
4 |
-
"POT-Creation-Date:
|
5 |
-
"PO-Revision-Date:
|
6 |
"Last-Translator: \n"
|
7 |
"Language-Team: Yithemes <plugins@yithemes.com>\n"
|
8 |
"Language: it_IT\n"
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: YITH WooCommerce Ajax Search Premium\n"
|
4 |
+
"POT-Creation-Date: 2017-03-06 14:56+0100\n"
|
5 |
+
"PO-Revision-Date: 2017-03-06 14:56+0100\n"
|
6 |
"Last-Translator: \n"
|
7 |
"Language-Team: Yithemes <plugins@yithemes.com>\n"
|
8 |
"Language: it_IT\n"
|
languages/yith-woocommerce-ajax-search.pot
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
msgid ""
|
3 |
msgstr ""
|
4 |
"Project-Id-Version: YITH WooCommerce Ajax Search Free\n"
|
5 |
-
"POT-Creation-Date:
|
6 |
"PO-Revision-Date: 2015-07-17 09:42+0100\n"
|
7 |
"Last-Translator: \n"
|
8 |
"Language-Team: Yithemes <plugins@yithemes.com>\n"
|
2 |
msgid ""
|
3 |
msgstr ""
|
4 |
"Project-Id-Version: YITH WooCommerce Ajax Search Free\n"
|
5 |
+
"POT-Creation-Date: 2017-03-06 14:56+0100\n"
|
6 |
"PO-Revision-Date: 2015-07-17 09:42+0100\n"
|
7 |
"Last-Translator: \n"
|
8 |
"Language-Team: Yithemes <plugins@yithemes.com>\n"
|
plugin-fw/init.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* Framework Name: YIT Plugin Framework
|
4 |
-
* Version: 2.9.
|
5 |
* Author: Yithemes
|
6 |
* Text Domain: yith-plugin-fw
|
7 |
* Domain Path: /languages/
|
@@ -19,8 +19,6 @@
|
|
19 |
* http://www.gnu.org/licenses/gpl-3.0.txt
|
20 |
*/
|
21 |
|
22 |
-
// test
|
23 |
-
|
24 |
if ( ! defined ( 'ABSPATH' ) ) {
|
25 |
exit;
|
26 |
} // Exit if accessed directly
|
@@ -56,3 +54,5 @@ if ( ! function_exists ( 'yit_maybe_plugin_fw_loader' ) ) {
|
|
56 |
}
|
57 |
}
|
58 |
}
|
|
|
|
1 |
<?php
|
2 |
/**
|
3 |
* Framework Name: YIT Plugin Framework
|
4 |
+
* Version: 2.9.51
|
5 |
* Author: Yithemes
|
6 |
* Text Domain: yith-plugin-fw
|
7 |
* Domain Path: /languages/
|
19 |
* http://www.gnu.org/licenses/gpl-3.0.txt
|
20 |
*/
|
21 |
|
|
|
|
|
22 |
if ( ! defined ( 'ABSPATH' ) ) {
|
23 |
exit;
|
24 |
} // Exit if accessed directly
|
54 |
}
|
55 |
}
|
56 |
}
|
57 |
+
|
58 |
+
|
plugin-fw/lib/yit-cpt-unlimited.php
CHANGED
@@ -138,8 +138,8 @@ class YIT_CPT_Unlimited {
|
|
138 |
add_action( 'admin_enqueue_scripts', array( $this, 'admin_assets' ) );
|
139 |
|
140 |
// metaboxes
|
141 |
-
add_action( '
|
142 |
-
add_action( '
|
143 |
|
144 |
// multiuploader
|
145 |
if ( $this->_args['add_multiuploader'] ) {
|
138 |
add_action( 'admin_enqueue_scripts', array( $this, 'admin_assets' ) );
|
139 |
|
140 |
// metaboxes
|
141 |
+
add_action( 'add_meta_boxes', array( $this, 'add_metabox_cptu' ), 2 );
|
142 |
+
add_action( 'add_meta_boxes', array( $this, 'add_metabox_item_fields' ), 2 );
|
143 |
|
144 |
// multiuploader
|
145 |
if ( $this->_args['add_multiuploader'] ) {
|
plugin-fw/lib/yit-metabox.php
CHANGED
@@ -133,7 +133,7 @@ if (!class_exists('YIT_Metabox')) {
|
|
133 |
$this->set_tabs();
|
134 |
|
135 |
|
136 |
-
add_action('add_meta_boxes', array($this, 'register_metabox'));
|
137 |
add_action('save_post', array($this, 'save_postdata'));
|
138 |
add_action('admin_enqueue_scripts', array($this, 'enqueue'), 15);
|
139 |
|
@@ -414,6 +414,7 @@ if (!class_exists('YIT_Metabox')) {
|
|
414 |
*/
|
415 |
public function register_metabox($post_type)
|
416 |
{
|
|
|
417 |
if (in_array($post_type, (array)$this->options['pages'])) {
|
418 |
add_meta_box($this->id, $this->options['label'], array($this, 'show'), $post_type, $this->options['context'], $this->options['priority']);
|
419 |
}
|
@@ -476,12 +477,31 @@ if (!class_exists('YIT_Metabox')) {
|
|
476 |
}
|
477 |
}
|
478 |
|
479 |
-
if (!in_array($post_type, (array)$this->options['pages'])) {
|
480 |
return $post_id;
|
481 |
-
}
|
482 |
|
483 |
$this->reorder_tabs();
|
484 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
485 |
|
486 |
foreach ($this->tabs as $tab) {
|
487 |
|
@@ -501,8 +521,7 @@ if (!class_exists('YIT_Metabox')) {
|
|
501 |
}
|
502 |
}
|
503 |
}
|
504 |
-
|
505 |
-
|
506 |
}
|
507 |
|
508 |
/**
|
133 |
$this->set_tabs();
|
134 |
|
135 |
|
136 |
+
add_action('add_meta_boxes', array($this, 'register_metabox'),99);
|
137 |
add_action('save_post', array($this, 'save_postdata'));
|
138 |
add_action('admin_enqueue_scripts', array($this, 'enqueue'), 15);
|
139 |
|
414 |
*/
|
415 |
public function register_metabox($post_type)
|
416 |
{
|
417 |
+
|
418 |
if (in_array($post_type, (array)$this->options['pages'])) {
|
419 |
add_meta_box($this->id, $this->options['label'], array($this, 'show'), $post_type, $this->options['context'], $this->options['priority']);
|
420 |
}
|
477 |
}
|
478 |
}
|
479 |
|
480 |
+
/*if (!in_array($post_type, (array)$this->options['pages'])) {
|
481 |
return $post_id;
|
482 |
+
}*/
|
483 |
|
484 |
$this->reorder_tabs();
|
485 |
|
486 |
+
if(isset($_POST['yit_metaboxes'])) {
|
487 |
+
$yit_metabox_data = $_POST['yit_metaboxes'];
|
488 |
+
|
489 |
+
if(is_array($yit_metabox_data)) {
|
490 |
+
|
491 |
+
foreach ($yit_metabox_data as $field_name => $field_value) {
|
492 |
+
|
493 |
+
if(! add_post_meta($post_id, $field_name, $field_value, true) )
|
494 |
+
{
|
495 |
+
update_post_meta($post_id, $field_name, $field_value);
|
496 |
+
}
|
497 |
+
|
498 |
+
|
499 |
+
}
|
500 |
+
|
501 |
+
}
|
502 |
+
|
503 |
+
|
504 |
+
}
|
505 |
|
506 |
foreach ($this->tabs as $tab) {
|
507 |
|
521 |
}
|
522 |
}
|
523 |
}
|
524 |
+
|
|
|
525 |
}
|
526 |
|
527 |
/**
|
plugin-fw/lib/yit-plugin-panel-wc.php
CHANGED
@@ -369,7 +369,7 @@ if ( ! class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
|
|
369 |
wp_enqueue_script( 'woocommerce_settings', $woocommerce->plugin_url() . '/assets/js/admin/settings.min.js', $woocommerce_settings_deps, $woocommerce_version, true );
|
370 |
|
371 |
wp_register_script( 'colorbox', YIT_CORE_PLUGIN_URL . '/assets/js/jquery.colorbox.js', array( 'jquery' ), '1.6.3', true );
|
372 |
-
wp_register_script( 'yit-plugin-panel', YIT_CORE_PLUGIN_URL . '/assets/js/yit-plugin-panel.min.js', array( 'jquery', 'jquery-chosen','wp-color-picker' ), $this->version, true );
|
373 |
wp_localize_script( 'woocommerce_settings', 'woocommerce_settings_params', array(
|
374 |
'i18n_nav_warning' => __( 'The changes you have made will be lost if you leave this page.', 'yith-plugin-fw' )
|
375 |
) );
|
369 |
wp_enqueue_script( 'woocommerce_settings', $woocommerce->plugin_url() . '/assets/js/admin/settings.min.js', $woocommerce_settings_deps, $woocommerce_version, true );
|
370 |
|
371 |
wp_register_script( 'colorbox', YIT_CORE_PLUGIN_URL . '/assets/js/jquery.colorbox.js', array( 'jquery' ), '1.6.3', true );
|
372 |
+
wp_register_script( 'yit-plugin-panel', YIT_CORE_PLUGIN_URL . '/assets/js/yit-plugin-panel.min.js', array( 'jquery', 'jquery-chosen','wp-color-picker', 'jquery-ui-dialog' ), $this->version, true );
|
373 |
wp_localize_script( 'woocommerce_settings', 'woocommerce_settings_params', array(
|
374 |
'i18n_nav_warning' => __( 'The changes you have made will be lost if you leave this page.', 'yith-plugin-fw' )
|
375 |
) );
|
plugin-fw/lib/yit-plugin-panel.php
CHANGED
@@ -114,7 +114,7 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
114 |
if( ! isset( $admin_page_hooks['yit_plugin_panel'] ) ){
|
115 |
$position = apply_filters( 'yit_plugins_menu_item_position', '62.32' );
|
116 |
// YITH Plugins text must not be translated
|
117 |
-
add_menu_page( 'yit_plugin_panel', 'YITH Plugins', 'manage_options', 'yit_plugin_panel', NULL, YIT_CORE_PLUGIN_URL . '/assets/images/yithemes-icon.png', $position );
|
118 |
}
|
119 |
}
|
120 |
|
@@ -324,7 +324,7 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
|
|
324 |
}
|
325 |
?>
|
326 |
<div id="icon-themes" class="icon32"><br /></div>
|
327 |
-
<h2 class="nav-tab-wrapper">
|
328 |
<?php echo $tabs ?>
|
329 |
</h2>
|
330 |
<?php
|
114 |
if( ! isset( $admin_page_hooks['yit_plugin_panel'] ) ){
|
115 |
$position = apply_filters( 'yit_plugins_menu_item_position', '62.32' );
|
116 |
// YITH Plugins text must not be translated
|
117 |
+
current_user_can( 'manage_options' ) && add_menu_page( 'yit_plugin_panel', 'YITH Plugins', 'manage_options', 'yit_plugin_panel', NULL, YIT_CORE_PLUGIN_URL . '/assets/images/yithemes-icon.png', $position );
|
118 |
}
|
119 |
}
|
120 |
|
324 |
}
|
325 |
?>
|
326 |
<div id="icon-themes" class="icon32"><br /></div>
|
327 |
+
<h2 class="yith nav-tab-wrapper">
|
328 |
<?php echo $tabs ?>
|
329 |
</h2>
|
330 |
<?php
|
plugin-fw/licence/lib/yit-licence.php
CHANGED
@@ -95,8 +95,9 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
|
|
95 |
}
|
96 |
|
97 |
/* Update Licence Information */
|
98 |
-
|
99 |
-
add_action( '
|
|
|
100 |
|
101 |
}
|
102 |
|
@@ -142,7 +143,7 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
|
|
142 |
$home_url = str_replace( $scheme, '', $home_url );
|
143 |
}
|
144 |
|
145 |
-
return $home_url;
|
146 |
}
|
147 |
|
148 |
/**
|
95 |
}
|
96 |
|
97 |
/* Update Licence Information */
|
98 |
+
//@TODO: Removed for performance
|
99 |
+
// add_action( 'core_upgrade_preamble', array( $this, 'check_all' ) );
|
100 |
+
// add_action( 'wp_maybe_auto_update', array( $this, 'check_all' ) );
|
101 |
|
102 |
}
|
103 |
|
143 |
$home_url = str_replace( $scheme, '', $home_url );
|
144 |
}
|
145 |
|
146 |
+
return apply_filters('yit_licence_get_home_url', $home_url );
|
147 |
}
|
148 |
|
149 |
/**
|
plugin-fw/yit-plugin.php
CHANGED
@@ -19,6 +19,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
19 |
! defined( 'YIT_CORE_PLUGIN_TEMPLATE_PATH' ) && define( 'YIT_CORE_PLUGIN_TEMPLATE_PATH', YIT_CORE_PLUGIN_PATH . '/templates' );
|
20 |
|
21 |
include_once( 'yit-functions.php' );
|
|
|
22 |
include_once( 'yit-plugin-registration-hook.php' );
|
23 |
include_once( 'lib/yit-metabox.php' );
|
24 |
include_once( 'lib/yit-plugin-panel.php' );
|
@@ -40,3 +41,18 @@ load_textdomain( 'yith-plugin-fw', get_template_directory() . '/core/plugin-fw/y
|
|
40 |
|
41 |
// ...or from plugin folder
|
42 |
|| load_textdomain( 'yith-plugin-fw', dirname(__FILE__) . '/languages/yith-plugin-fw-' . apply_filters( 'plugin_locale', get_locale(), 'yith-plugin-fw' ) . '.mo' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
! defined( 'YIT_CORE_PLUGIN_TEMPLATE_PATH' ) && define( 'YIT_CORE_PLUGIN_TEMPLATE_PATH', YIT_CORE_PLUGIN_PATH . '/templates' );
|
20 |
|
21 |
include_once( 'yit-functions.php' );
|
22 |
+
include_once( 'yit-woocommerce-compatibility.php' );
|
23 |
include_once( 'yit-plugin-registration-hook.php' );
|
24 |
include_once( 'lib/yit-metabox.php' );
|
25 |
include_once( 'lib/yit-plugin-panel.php' );
|
41 |
|
42 |
// ...or from plugin folder
|
43 |
|| load_textdomain( 'yith-plugin-fw', dirname(__FILE__) . '/languages/yith-plugin-fw-' . apply_filters( 'plugin_locale', get_locale(), 'yith-plugin-fw' ) . '.mo' );
|
44 |
+
|
45 |
+
if( apply_filters( 'yit_fw_wc_update_message_hook', true ) || ( function_exists( 'WC' ) && ! version_compare( WC()->version, '2.7', '>=' ) ) ){
|
46 |
+
add_action( 'admin_notices', 'yit_fw_wc_update_message', 15 );
|
47 |
+
|
48 |
+
if( ! function_exists( 'yit_fw_wc_update_message' ) ){
|
49 |
+
function yit_fw_wc_update_message(){ ?>
|
50 |
+
<div class="notice notice-error is-dismissible">
|
51 |
+
<?php $message = 'the new WooCommerce version 2.7 will be soon released. <strong>Before</strong> proceeding with the update, please verify the plugins you are using are already compatible. You can check the compatibility status of YITH products'; ?>
|
52 |
+
<?php $url = 'https://support.yithemes.com/hc/en-us/articles/215945378-Theme-and-Plugin-compatibility-with-WordPress-and-WooCommerce'; ?>
|
53 |
+
<p><?php printf( '<strong>%s</strong> - %s <a href="%s" target="_blank">HERE</a>.', 'Please note', $message, $url ); ?></p>
|
54 |
+
</div>
|
55 |
+
<?php
|
56 |
+
}
|
57 |
+
}
|
58 |
+
}
|
plugin-fw/yit-woocommerce-compatibility.php
ADDED
@@ -0,0 +1,688 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* This file belongs to the YIT Plugin Framework.
|
4 |
+
*
|
5 |
+
* This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
|
6 |
+
* that is bundled with this package in the file LICENSE.txt.
|
7 |
+
* It is also available through the world-wide-web at this URL:
|
8 |
+
* http://www.gnu.org/licenses/gpl-3.0.txt
|
9 |
+
*/
|
10 |
+
|
11 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
12 |
+
exit;
|
13 |
+
} // Exit if accessed directly
|
14 |
+
|
15 |
+
if ( ! function_exists( 'WC' ) ) {
|
16 |
+
return;
|
17 |
+
}
|
18 |
+
|
19 |
+
$changed_objects = array();
|
20 |
+
|
21 |
+
if ( ! function_exists( 'yit_get_prop' ) ) {
|
22 |
+
/**
|
23 |
+
*
|
24 |
+
*/
|
25 |
+
function yit_get_prop( $object, $key, $single = true, $context = 'view' ) {
|
26 |
+
|
27 |
+
$prop_map = yit_return_new_attribute_map();
|
28 |
+
$is_wc_data = $object instanceof WC_Data;
|
29 |
+
|
30 |
+
if ( $is_wc_data ) {
|
31 |
+
$key = ( array_key_exists( $key, $prop_map ) ) ? $prop_map[ $key ] : $key;
|
32 |
+
|
33 |
+
if ( ( $getter = "get{$key}" ) && method_exists( $object, $getter ) ) {
|
34 |
+
return $object->$getter( $context );
|
35 |
+
} elseif ( ( $getter = "get_{$key}" ) && method_exists( $object, $getter ) ) {
|
36 |
+
return $object->$getter( $context );
|
37 |
+
} else {
|
38 |
+
return $object->get_meta( $key, $single );
|
39 |
+
}
|
40 |
+
} else {
|
41 |
+
$key = ( in_array( $key, $prop_map ) ) ? array_search( $key, $prop_map ) : $key;
|
42 |
+
|
43 |
+
if ( isset( $object->$key ) ) {
|
44 |
+
return $object->$key;
|
45 |
+
} elseif ( yit_wc_check_post_columns( $key ) ) {
|
46 |
+
return $object->post->$key;
|
47 |
+
} else {
|
48 |
+
$getter = 'get_user_meta';
|
49 |
+
! $object instanceof WC_Customer && $getter = 'get_post_meta';
|
50 |
+
|
51 |
+
$object_id = is_callable( array( $object, 'get_id' ) ) ? $object->get_id() : $object->id;
|
52 |
+
|
53 |
+
return $getter( $object_id, $key, true );
|
54 |
+
}
|
55 |
+
}
|
56 |
+
}
|
57 |
+
}
|
58 |
+
|
59 |
+
if ( ! function_exists( 'yit_set_prop' ) ) {
|
60 |
+
/**
|
61 |
+
*
|
62 |
+
*/
|
63 |
+
function yit_set_prop( $object, $arg1, $arg2 = false ) {
|
64 |
+
|
65 |
+
if ( ! is_array( $arg1 ) ) {
|
66 |
+
$arg1 = array(
|
67 |
+
$arg1 => $arg2
|
68 |
+
);
|
69 |
+
}
|
70 |
+
|
71 |
+
$prop_map = yit_return_new_attribute_map();
|
72 |
+
$is_wc_data = $object instanceof WC_Data;
|
73 |
+
|
74 |
+
foreach ( $arg1 as $key => $value ) {
|
75 |
+
if ( $is_wc_data ) {
|
76 |
+
$key = ( array_key_exists( $key, $prop_map ) ) ? $prop_map[ $key ] : $key;
|
77 |
+
|
78 |
+
if ( ( $setter = "set{$key}" ) && method_exists( $object, $setter ) ) {
|
79 |
+
$object->$setter( $value );
|
80 |
+
} elseif ( ( $setter = "set_{$key}" ) && method_exists( $object, $setter ) ) {
|
81 |
+
$object->$setter( $value );
|
82 |
+
} else {
|
83 |
+
$object->update_meta_data( $key, $value );
|
84 |
+
}
|
85 |
+
} else {
|
86 |
+
$key = ( in_array( $key, $prop_map ) ) ? array_search( $key, $prop_map ) : $key;
|
87 |
+
( strpos( $key, '_' ) === 0 ) && $key = substr( $key, 1 );
|
88 |
+
|
89 |
+
if ( yit_wc_check_post_columns( $key ) ) {
|
90 |
+
$object->post->$key = $value;
|
91 |
+
} else {
|
92 |
+
$object->$key = $value;
|
93 |
+
}
|
94 |
+
}
|
95 |
+
}
|
96 |
+
}
|
97 |
+
}
|
98 |
+
|
99 |
+
if ( ! function_exists( 'yit_save_prop' ) ) {
|
100 |
+
/**
|
101 |
+
*
|
102 |
+
*/
|
103 |
+
function yit_save_prop( $object, $arg1, $arg2 = false, $force_update = false ) {
|
104 |
+
if ( ! is_array( $arg1 ) ) {
|
105 |
+
$arg1 = array(
|
106 |
+
$arg1 => $arg2
|
107 |
+
);
|
108 |
+
}
|
109 |
+
|
110 |
+
$is_wc_data = $object instanceof WC_Data;
|
111 |
+
|
112 |
+
foreach ( $arg1 as $key => $value ) {
|
113 |
+
yit_set_prop( $object, $key, $value );
|
114 |
+
|
115 |
+
if ( $is_wc_data ) {
|
116 |
+
if( $force_update ){
|
117 |
+
$object->save();
|
118 |
+
}
|
119 |
+
else {
|
120 |
+
yit_store_changes( $object, $key, $value );
|
121 |
+
}
|
122 |
+
} else {
|
123 |
+
if ( yit_wc_check_post_columns( $key ) ) {
|
124 |
+
yit_store_changes( $object->post, $key, $value );
|
125 |
+
} else {
|
126 |
+
$object_id = is_callable( array( $object, 'get_id' ) ) ? $object->get_id() : $object->id;
|
127 |
+
|
128 |
+
update_post_meta( $object_id, $key, $value );
|
129 |
+
}
|
130 |
+
}
|
131 |
+
}
|
132 |
+
}
|
133 |
+
}
|
134 |
+
|
135 |
+
if ( ! function_exists( 'yit_delete_prop' ) ) {
|
136 |
+
/**
|
137 |
+
*
|
138 |
+
*/
|
139 |
+
function yit_delete_prop( $object, $key, $value = '' ) {
|
140 |
+
$prop_map = yit_return_new_attribute_map();
|
141 |
+
$is_wc_data = $object instanceof WC_Data;
|
142 |
+
|
143 |
+
if ( $is_wc_data ) {
|
144 |
+
$key = ( array_key_exists( $key, $prop_map ) ) ? $prop_map[ $key ] : $key;
|
145 |
+
|
146 |
+
if ( ( $setter = "set{$key}" ) && ( $getter = "get{$key}" ) && method_exists( $object, $setter ) && ( ! $value || $object->$getter == $value ) ) {
|
147 |
+
$object->$setter( '' );
|
148 |
+
} elseif ( ( $setter = "set_{$key}" ) && ( $getter = "get_{$key}" ) && method_exists( $object, $setter ) && ( ! $value || $object->$getter == $value ) ) {
|
149 |
+
$object->$setter( '' );
|
150 |
+
} elseif ( ( ! $value || $object->get_meta( $key ) == $value ) ) {
|
151 |
+
$object->delete_meta_data( $key, $value );
|
152 |
+
}
|
153 |
+
|
154 |
+
yit_store_changes( $object );
|
155 |
+
} else {
|
156 |
+
if ( yit_wc_check_post_columns( $key ) && ( ! $value || $object->post->$key == $value ) ) {
|
157 |
+
yit_store_changes( $object->post, $key, '' );
|
158 |
+
} else {
|
159 |
+
$object_id = is_callable( array( $object, 'get_id' ) ) ? $object->get_id() : $object->id;
|
160 |
+
|
161 |
+
delete_post_meta( $object_id, $key, $value );
|
162 |
+
}
|
163 |
+
}
|
164 |
+
}
|
165 |
+
}
|
166 |
+
|
167 |
+
if ( ! function_exists( 'yit_return_new_attribute_map' ) ) {
|
168 |
+
function yit_return_new_attribute_map() {
|
169 |
+
return array(
|
170 |
+
'post_parent' => 'parent_id',
|
171 |
+
'post_title' => 'name',
|
172 |
+
'post_status' => 'status',
|
173 |
+
'post_content' => 'description',
|
174 |
+
/* Orders */
|
175 |
+
'paid_date' => 'date_paid',
|
176 |
+
'_paid_date' => '_date_paid',
|
177 |
+
'completed_date' => 'date_completed',
|
178 |
+
'_completed_date' => '_date_completed',
|
179 |
+
'_order_date' => '_date_created',
|
180 |
+
'order_date' => 'date_created',
|
181 |
+
'order_total' => 'total',
|
182 |
+
/* Products */
|
183 |
+
'visibility' => 'catalog_visibility',
|
184 |
+
'_visibility' => '_catalog_visibility',
|
185 |
+
'sale_price_dates_from' => 'date_on_sale_from',
|
186 |
+
'_sale_price_dates_from' => '_date_on_sale_from',
|
187 |
+
'sale_price_dates_to' => 'date_on_sale_to',
|
188 |
+
'_sale_price_dates_to' => '_date_on_sale_to',
|
189 |
+
);
|
190 |
+
}
|
191 |
+
}
|
192 |
+
|
193 |
+
if ( ! function_exists( 'yit_store_changes' ) ) {
|
194 |
+
function yit_store_changes( $object, $key = false, $value = false ) {
|
195 |
+
global $changed_objects;
|
196 |
+
|
197 |
+
$is_wc_data = $object instanceof WC_Data;
|
198 |
+
|
199 |
+
if ( $is_wc_data ) {
|
200 |
+
/**
|
201 |
+
* @var $object \WC_Data
|
202 |
+
*/
|
203 |
+
$object_reference = $object->get_id();
|
204 |
+
|
205 |
+
$cache_type = is_a( $object, 'WC_Product' ) ? 'product' : 'order';
|
206 |
+
$cache_key = $cache_type . '-' . $object_reference;
|
207 |
+
$cache_group = $cache_type . 's';
|
208 |
+
|
209 |
+
$changed_objects[ $object_reference ]['object'] = $object;
|
210 |
+
$changed_objects[ $object_reference ]['changes'][ $key ] = $value;
|
211 |
+
|
212 |
+
|
213 |
+
wp_cache_set( $cache_key, $object, $cache_group );
|
214 |
+
} else {
|
215 |
+
$changed_objects[ $object->ID ][ $key ] = $value;
|
216 |
+
}
|
217 |
+
}
|
218 |
+
}
|
219 |
+
|
220 |
+
if ( ! function_exists( 'yit_send_changes_to_db' ) ) {
|
221 |
+
function yit_send_changes_to_db() {
|
222 |
+
global $changed_objects;
|
223 |
+
|
224 |
+
if ( ! empty( $changed_objects ) ) {
|
225 |
+
foreach ( $changed_objects as $id => $data ) {
|
226 |
+
if ( version_compare( WC()->version, '2.7.0', '>=' ) ) {
|
227 |
+
/**
|
228 |
+
* @var $object \WC_Data
|
229 |
+
*/
|
230 |
+
$object = is_a( $data['object'], 'WC_Product' ) ? wc_get_product( $id ) : wc_get_order( $id );
|
231 |
+
|
232 |
+
yit_set_prop( $object, $data['changes'] );
|
233 |
+
$object->save();
|
234 |
+
} else {
|
235 |
+
$data['ID'] = $id;
|
236 |
+
wp_update_post( $data );
|
237 |
+
}
|
238 |
+
}
|
239 |
+
}
|
240 |
+
}
|
241 |
+
}
|
242 |
+
|
243 |
+
if ( ! function_exists( 'yit_get_orders' ) ) {
|
244 |
+
/**
|
245 |
+
*
|
246 |
+
*/
|
247 |
+
function yit_get_orders( $args ) {
|
248 |
+
if ( version_compare( WC()->version, '2.6', '<' ) ) {
|
249 |
+
$args['fields'] = 'objects';
|
250 |
+
$posts = get_posts( $args );
|
251 |
+
|
252 |
+
return array_map( 'wc_get_order', $posts );
|
253 |
+
} else {
|
254 |
+
return wc_get_orders( $args );
|
255 |
+
}
|
256 |
+
}
|
257 |
+
}
|
258 |
+
|
259 |
+
if ( ! function_exists( 'yit_get_products' ) ) {
|
260 |
+
/**
|
261 |
+
*
|
262 |
+
*/
|
263 |
+
function yit_get_products( $args ) {
|
264 |
+
if ( version_compare( WC()->version, '2.6', '<' ) ) {
|
265 |
+
$args['fields'] = 'objects';
|
266 |
+
$posts = get_posts( $args );
|
267 |
+
|
268 |
+
return array_map( 'wc_get_product', $posts );
|
269 |
+
} else {
|
270 |
+
return wc_get_products( $args );
|
271 |
+
}
|
272 |
+
}
|
273 |
+
}
|
274 |
+
|
275 |
+
if ( ! function_exists( 'yit_update_product_stock' ) ) {
|
276 |
+
/**
|
277 |
+
*
|
278 |
+
*/
|
279 |
+
function yit_update_product_stock( $product, $stock_quantity = 1, $operation = 'set' ) {
|
280 |
+
if ( function_exists( 'wc_update_product_stock' ) ) {
|
281 |
+
$stock = wc_update_product_stock( $product, $stock_quantity, $operation );
|
282 |
+
} else {
|
283 |
+
switch ( $operation ) {
|
284 |
+
case 'increase':
|
285 |
+
$stock = $product->increase_stock( $stock_quantity );
|
286 |
+
break;
|
287 |
+
case 'decrease':
|
288 |
+
$stock = $product->reduce_stock( $stock_quantity );
|
289 |
+
break;
|
290 |
+
case 'set':
|
291 |
+
default:
|
292 |
+
$stock = $product->set_stock( $stock_quantity );
|
293 |
+
break;
|
294 |
+
}
|
295 |
+
}
|
296 |
+
|
297 |
+
return $stock;
|
298 |
+
}
|
299 |
+
}
|
300 |
+
|
301 |
+
if ( ! function_exists( 'yit_wc_deprecated_filters' ) ) {
|
302 |
+
/**
|
303 |
+
*
|
304 |
+
*/
|
305 |
+
function yit_wc_deprecated_filters() {
|
306 |
+
return apply_filters( 'yit_wc_deprecated_filters', array(
|
307 |
+
'woocommerce_email_order_schema_markup' => 'woocommerce_structured_data_order',
|
308 |
+
'woocommerce_product_width' => 'woocommerce_product_get_width',
|
309 |
+
'woocommerce_product_height' => 'woocommerce_product_get_height',
|
310 |
+
'woocommerce_product_length' => 'woocommerce_product_get_length',
|
311 |
+
'woocommerce_product_weight' => 'woocommerce_product_get_weight',
|
312 |
+
'woocommerce_get_sku' => 'woocommerce_product_get_sku',
|
313 |
+
'woocommerce_get_price' => 'woocommerce_product_get_price',
|
314 |
+
'woocommerce_get_regular_price' => 'woocommerce_product_get_regular_price',
|
315 |
+
'woocommerce_get_sale_price' => 'woocommerce_product_get_sale_price',
|
316 |
+
'woocommerce_product_tax_class' => 'woocommerce_product_get_tax_class',
|
317 |
+
'woocommerce_get_stock_quantity' => 'woocommerce_product_get_stock_quantity',
|
318 |
+
'woocommerce_get_product_attributes' => 'woocommerce_product_get_attributes',
|
319 |
+
'woocommerce_product_gallery_attachment_ids' => 'woocommerce_product_get_gallery_image_ids',
|
320 |
+
'woocommerce_product_review_count' => 'woocommerce_product_get_review_count',
|
321 |
+
'woocommerce_product_files' => 'woocommerce_product_get_downloads',
|
322 |
+
'woocommerce_get_currency' => 'woocommerce_order_get_currency',
|
323 |
+
'woocommerce_order_amount_discount_total' => 'woocommerce_order_get_discount_total',
|
324 |
+
'woocommerce_order_amount_discount_tax' => 'woocommerce_order_get_discount_tax',
|
325 |
+
'woocommerce_order_amount_shipping_total' => 'woocommerce_order_get_shipping_total',
|
326 |
+
'woocommerce_order_amount_shipping_tax' => 'woocommerce_order_get_shipping_tax',
|
327 |
+
'woocommerce_order_amount_cart_tax' => 'woocommerce_order_get_cart_tax',
|
328 |
+
'woocommerce_order_amount_total' => 'woocommerce_order_get_total',
|
329 |
+
'woocommerce_order_amount_total_tax' => 'woocommerce_order_get_total_tax',
|
330 |
+
'woocommerce_order_amount_total_discount' => 'woocommerce_order_get_total_discount',
|
331 |
+
'woocommerce_order_amount_subtotal' => 'woocommerce_order_get_subtotal',
|
332 |
+
'woocommerce_order_tax_totals' => 'woocommerce_order_get_tax_totals',
|
333 |
+
'woocommerce_refund_amount' => 'woocommerce_get_order_refund_get_amount',
|
334 |
+
'woocommerce_refund_reason' => 'woocommerce_get_order_refund_get_reason',
|
335 |
+
'default_checkout_country' => 'default_checkout_billing_country',
|
336 |
+
'default_checkout_state' => 'default_checkout_billing_state',
|
337 |
+
'default_checkout_postcode' => 'default_checkout_billing_postcode',
|
338 |
+
'woocommerce_add_order_item_meta' => 'woocommerce_new_order_item',
|
339 |
+
|
340 |
+
) );
|
341 |
+
}
|
342 |
+
}
|
343 |
+
|
344 |
+
if ( ! function_exists( 'yit_fix_wc_deprecated_filters' ) ) {
|
345 |
+
/**
|
346 |
+
*
|
347 |
+
*/
|
348 |
+
function yit_fix_wc_deprecated_filters() {
|
349 |
+
|
350 |
+
if ( ! version_compare( WC()->version, '2.7.0', '<' ) ) {
|
351 |
+
return;
|
352 |
+
}
|
353 |
+
|
354 |
+
$deprecated_filters = yit_wc_deprecated_filters();
|
355 |
+
foreach ( $deprecated_filters as $old => $new ) {
|
356 |
+
add_filter( $old, 'yit_wc_deprecated_filter_mapping', 10, 100 );
|
357 |
+
}
|
358 |
+
}
|
359 |
+
}
|
360 |
+
|
361 |
+
if ( ! function_exists( 'yit_wc_deprecated_filter_mapping' ) ) {
|
362 |
+
/**
|
363 |
+
*
|
364 |
+
*/
|
365 |
+
function yit_wc_deprecated_filter_mapping() {
|
366 |
+
$deprecated_filters = yit_wc_deprecated_filters();
|
367 |
+
|
368 |
+
$filter = current_filter();
|
369 |
+
$args = func_get_args();
|
370 |
+
$data = $args[0];
|
371 |
+
|
372 |
+
|
373 |
+
if ( isset( $deprecated_filters[ $filter ] ) ) {
|
374 |
+
if ( has_filter( $deprecated_filters[ $filter ] ) ) {
|
375 |
+
$data = apply_filters_ref_array( $deprecated_filters[ $filter ], $args );
|
376 |
+
}
|
377 |
+
}
|
378 |
+
|
379 |
+
return $data;
|
380 |
+
}
|
381 |
+
}
|
382 |
+
|
383 |
+
if ( ! function_exists( 'yit_wc_check_post_columns' ) ) {
|
384 |
+
/**
|
385 |
+
*
|
386 |
+
*/
|
387 |
+
function yit_wc_check_post_columns( $key ) {
|
388 |
+
$columns = array(
|
389 |
+
'post_author',
|
390 |
+
'post_date',
|
391 |
+
'post_date_gmt',
|
392 |
+
'post_content',
|
393 |
+
'post_title',
|
394 |
+
'post_excerpt',
|
395 |
+
'post_status',
|
396 |
+
'comment_status',
|
397 |
+
'ping_status',
|
398 |
+
'post_password',
|
399 |
+
'post_name',
|
400 |
+
'to_ping',
|
401 |
+
'pinged',
|
402 |
+
'post_modified',
|
403 |
+
'post_modified_gmt',
|
404 |
+
'post_content_filtered',
|
405 |
+
'post_parent',
|
406 |
+
'guid',
|
407 |
+
'menu_order',
|
408 |
+
'post_type',
|
409 |
+
'post_mime_type',
|
410 |
+
'comment_count',
|
411 |
+
);
|
412 |
+
|
413 |
+
return in_array( $key, $columns );
|
414 |
+
}
|
415 |
+
}
|
416 |
+
|
417 |
+
|
418 |
+
/* Shortcuts for common functions */
|
419 |
+
|
420 |
+
if ( ! function_exists( 'yit_get_order_id' ) ) {
|
421 |
+
/**
|
422 |
+
* Retrieve the order id
|
423 |
+
*
|
424 |
+
* @param WC_Order $order
|
425 |
+
*
|
426 |
+
* @return mixed
|
427 |
+
*/
|
428 |
+
function yit_get_order_id( $order ) {
|
429 |
+
return yit_get_prop( $order, 'id' );
|
430 |
+
}
|
431 |
+
}
|
432 |
+
|
433 |
+
if ( ! function_exists( 'yit_get_product_id' ) ) {
|
434 |
+
/**
|
435 |
+
* Retrieve the product id
|
436 |
+
*
|
437 |
+
* @param WC_Product $product
|
438 |
+
*
|
439 |
+
* @return mixed
|
440 |
+
*/
|
441 |
+
function yit_get_product_id( $product ) {
|
442 |
+
return yit_get_prop( $product, 'id' );
|
443 |
+
}
|
444 |
+
}
|
445 |
+
|
446 |
+
if ( ! function_exists( 'yit_get_base_product_id' ) ) {
|
447 |
+
/**
|
448 |
+
* New way to retrieve the $product->id as it was before WC 2.7.
|
449 |
+
*
|
450 |
+
* Retrieve the parent product id for WC_Product_Variation instances
|
451 |
+
* or the product id in the other cases.
|
452 |
+
*
|
453 |
+
* @param WC_Product $product
|
454 |
+
*
|
455 |
+
* @return mixed
|
456 |
+
*/
|
457 |
+
function yit_get_base_product_id( $product ) {
|
458 |
+
|
459 |
+
return $product instanceof WC_Data && $product->is_type( 'variation' ) ?
|
460 |
+
yit_get_prop( $product, 'parent_id' ) :
|
461 |
+
yit_get_prop( $product, 'id' );
|
462 |
+
}
|
463 |
+
}
|
464 |
+
|
465 |
+
if ( ! function_exists( 'yit_get_display_price' ) ) {
|
466 |
+
/**
|
467 |
+
* @param WC_Product $product
|
468 |
+
* @param string $price
|
469 |
+
* @param int $qty
|
470 |
+
*/
|
471 |
+
function yit_get_display_price( $product, $price = '', $qty = 1 ) {
|
472 |
+
|
473 |
+
if ( version_compare( WC()->version, '2.7.0', '>=' ) ) {
|
474 |
+
|
475 |
+
$price = wc_get_price_to_display( $product, array( 'qty' => $qty, 'price' => $price ) );
|
476 |
+
} else {
|
477 |
+
|
478 |
+
$price = $product->get_display_price( $price, $qty );
|
479 |
+
}
|
480 |
+
|
481 |
+
return $price;
|
482 |
+
}
|
483 |
+
}
|
484 |
+
|
485 |
+
if ( ! function_exists( 'yit_get_price_excluding_tax' ) ) {
|
486 |
+
/**
|
487 |
+
* @param WC_Product $product
|
488 |
+
* @param int $qty
|
489 |
+
* @param string $price
|
490 |
+
*
|
491 |
+
* @return float|string
|
492 |
+
*/
|
493 |
+
function yit_get_price_excluding_tax( $product, $qty = 1, $price = '' ) {
|
494 |
+
|
495 |
+
if ( version_compare( WC()->version, '2.7.0', '>=' ) ) {
|
496 |
+
|
497 |
+
$price = wc_get_price_excluding_tax( $product, array( 'qty' => $qty, 'price' => $price ) );
|
498 |
+
} else {
|
499 |
+
|
500 |
+
$price = $product->get_price_excluding_tax( $qty, $price );
|
501 |
+
}
|
502 |
+
|
503 |
+
return $price;
|
504 |
+
}
|
505 |
+
}
|
506 |
+
|
507 |
+
if ( ! function_exists( 'yit_get_price_including_tax' ) ) {
|
508 |
+
/**
|
509 |
+
* @param WC_Product $product
|
510 |
+
* @param int $qty
|
511 |
+
* @param string $price
|
512 |
+
*
|
513 |
+
* @return float|string
|
514 |
+
*/
|
515 |
+
function yit_get_price_including_tax( $product, $qty = 1, $price = '' ) {
|
516 |
+
|
517 |
+
if ( version_compare( WC()->version, '2.7.0', '>=' ) ) {
|
518 |
+
|
519 |
+
$price = wc_get_price_including_tax( $product, array( 'qty' => $qty, 'price' => $price ) );
|
520 |
+
} else {
|
521 |
+
|
522 |
+
$price = $product->get_price_including_tax( $qty, $price );
|
523 |
+
}
|
524 |
+
|
525 |
+
return $price;
|
526 |
+
}
|
527 |
+
}
|
528 |
+
|
529 |
+
if ( ! function_exists( 'yit_get_product_image_id' ) ) {
|
530 |
+
/**
|
531 |
+
* get the attach image id
|
532 |
+
*
|
533 |
+
* @param WC_Product $product
|
534 |
+
* @param string $context ( view/edit )
|
535 |
+
*/
|
536 |
+
function yit_get_product_image_id( $product, $context = 'view' ) {
|
537 |
+
|
538 |
+
if ( version_compare( WC()->version, '2.7.0', '>=' ) ) {
|
539 |
+
|
540 |
+
$image_id = $product->get_image_id( $context );
|
541 |
+
} else {
|
542 |
+
|
543 |
+
$image_id = $product->get_image_id();
|
544 |
+
}
|
545 |
+
|
546 |
+
return $image_id;
|
547 |
+
}
|
548 |
+
}
|
549 |
+
|
550 |
+
if ( !function_exists( 'yit_get_refund_amount' ) ){
|
551 |
+
/**
|
552 |
+
* @param $refund \WC_Order_Refund
|
553 |
+
* @param $context string
|
554 |
+
*
|
555 |
+
* @return float
|
556 |
+
*/
|
557 |
+
function yit_get_refund_amount( $refund, $context = 'view' ){
|
558 |
+
$is_wc_data = $refund instanceof WC_Data;
|
559 |
+
|
560 |
+
if( $is_wc_data ){
|
561 |
+
return $refund->get_amount( $context );
|
562 |
+
}
|
563 |
+
else{
|
564 |
+
return $refund->get_refund_amount();
|
565 |
+
}
|
566 |
+
}
|
567 |
+
}
|
568 |
+
|
569 |
+
if ( !function_exists( 'yit_set_refund_amount' ) ){
|
570 |
+
/**
|
571 |
+
* @param $refund \WC_Order_Refund
|
572 |
+
* @param $amount float
|
573 |
+
*
|
574 |
+
* @return float
|
575 |
+
*/
|
576 |
+
function yit_set_refund_amount( $refund, $amount ){
|
577 |
+
$is_wc_data = $refund instanceof WC_Data;
|
578 |
+
|
579 |
+
if( $is_wc_data ){
|
580 |
+
$refund->set_amount( $amount );
|
581 |
+
}
|
582 |
+
else{
|
583 |
+
$refund->refund_amount = $amount;
|
584 |
+
}
|
585 |
+
}
|
586 |
+
}
|
587 |
+
|
588 |
+
if ( !function_exists( 'yit_get_refund_reason' ) ){
|
589 |
+
/**
|
590 |
+
* @param $refund \WC_Order_Refund
|
591 |
+
* @param $amount float
|
592 |
+
*
|
593 |
+
* @return float
|
594 |
+
*/
|
595 |
+
function yit_get_refund_reason( $refund ){
|
596 |
+
$is_wc_data = $refund instanceof WC_Data;
|
597 |
+
|
598 |
+
if( $is_wc_data ){
|
599 |
+
return $refund->get_reason();
|
600 |
+
}
|
601 |
+
else{
|
602 |
+
return $refund->get_refund_reason();
|
603 |
+
}
|
604 |
+
}
|
605 |
+
}
|
606 |
+
|
607 |
+
if( ! function_exists( 'yit_add_select2_fields' ) ){
|
608 |
+
/**
|
609 |
+
* Add select 2
|
610 |
+
*
|
611 |
+
* @param array $args
|
612 |
+
*/
|
613 |
+
function yit_add_select2_fields( $args = array() ){
|
614 |
+
$default = array(
|
615 |
+
'type' => 'hidden',
|
616 |
+
'class' => '',
|
617 |
+
'id' => '',
|
618 |
+
'name' => '',
|
619 |
+
'data-placeholder' => '',
|
620 |
+
'data-allow_clear' => false,
|
621 |
+
'data-selected' => '',
|
622 |
+
'data-multiple' => false,
|
623 |
+
'data-action' => '',
|
624 |
+
'value' => '',
|
625 |
+
'style' => ''
|
626 |
+
);
|
627 |
+
|
628 |
+
$args = wp_parse_args( $args, $default );
|
629 |
+
|
630 |
+
if( version_compare( WC()->version, '2.7.0', '>=' ) ) :
|
631 |
+
if( $args['data-multiple']=== true && substr( $args['name'], -2 ) != '[]'){
|
632 |
+
$args['name'] = $args['name'] . '[]';
|
633 |
+
}
|
634 |
+
?>
|
635 |
+
|
636 |
+
<select
|
637 |
+
id="<?php echo $args['id'] ?>"
|
638 |
+
class="<?php echo $args['class'] ?>"
|
639 |
+
name="<?php echo $args['name'] ?>"
|
640 |
+
data-placeholder="<?php echo $args['data-placeholder'] ?>"
|
641 |
+
data-allow_clear="<?php echo $args['data-allow_clear'] ?>"
|
642 |
+
<?php echo ! empty( $args['data-action'] ) ? 'data-action="' . $args['data-action'] . '"' : ''; ?>
|
643 |
+
<?php echo ! empty( $args['data-multiple'] ) ? 'multiple="multiple"' : ''; ?>
|
644 |
+
style="<?php echo $args['style'] ?>"
|
645 |
+
>
|
646 |
+
|
647 |
+
<?php if( ! empty( $args['value'] ) ) {
|
648 |
+
$values = $args['value'];
|
649 |
+
|
650 |
+
if( ! is_array( $values ) ){
|
651 |
+
$values = explode( ',', $values );
|
652 |
+
}
|
653 |
+
|
654 |
+
foreach( $values as $value ): ?>
|
655 |
+
<option value="<?php echo $value; ?>" <?php selected( true, true, true ) ?> >
|
656 |
+
<?php echo $args['data-selected'][ $value ]; ?>
|
657 |
+
</option>
|
658 |
+
<?php endforeach;
|
659 |
+
}
|
660 |
+
?>
|
661 |
+
</select>
|
662 |
+
<?php
|
663 |
+
else :
|
664 |
+
if( is_array( $args['data-selected'] ) ){
|
665 |
+
$args['data-selected'] = $args['data-multiple'] === true ? json_encode( $args['data-selected'] ) : array_shift( $args['data-selected'] );
|
666 |
+
}
|
667 |
+
?>
|
668 |
+
<input
|
669 |
+
type="hidden"
|
670 |
+
id="<?php echo $args['id'] ?>"
|
671 |
+
class="<?php echo $args['class'] ?>"
|
672 |
+
name="<?php echo $args['name'] ?>"
|
673 |
+
data-placeholder="<?php echo $args['data-placeholder'] ?>"
|
674 |
+
data-allow_clear="<?php echo $args['data-allow_clear'] ?>"
|
675 |
+
data-selected="<?php echo $args['data-selected'] ?>"
|
676 |
+
data-multiple="<?php echo $args['data-multiple'] === true ? 'true' : 'false' ?>"
|
677 |
+
<?php if( ! empty( $args['data-action'] ) ? 'data-action="' . $args['data-action'] . '"' : '' ) ?>
|
678 |
+
value="<?php echo $args['value'] ?>"
|
679 |
+
style="<?php echo $args['style'] ?>"
|
680 |
+
/>
|
681 |
+
<?php
|
682 |
+
endif;
|
683 |
+
}
|
684 |
+
}
|
685 |
+
|
686 |
+
|
687 |
+
yit_fix_wc_deprecated_filters();
|
688 |
+
add_action( 'shutdown', 'yit_send_changes_to_db' );
|
screenshot-1.png
DELETED
Binary file
|
screenshot-2.png
DELETED
Binary file
|