Changeset 2933114
- Timestamp:
- 07/03/2023 02:48:05 AM (3 years ago)
- Location:
- woo-notification/trunk
- Files:
-
- 4 edited
-
CHANGELOG.txt (modified) (1 diff)
-
includes/support.php (modified) (1 diff)
-
readme.txt (modified) (2 diffs)
-
woo-notification.php (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
woo-notification/trunk/CHANGELOG.txt
r2924703 r2933114 1 /**1.2.12 - 2023.07.03**/ 2 – Updated: Compatible with WooCommerce HPOS(COT) 3 1 4 /**1.2.11 - 2023.06.12**/ 2 5 -Updated: Change image size slug -
woo-notification/trunk/includes/support.php
r2924703 r2933114 942 942 } 943 943 } 944 945 if ( ! class_exists( 'VillaTheme_Require_Environment' ) ) { 946 class VillaTheme_Require_Environment { 947 948 protected $args; 949 protected $plugin_name; 950 protected $notices = []; 951 952 public function __construct( $args ) { 953 if ( ! did_action( 'plugins_loaded' ) ) { 954 _doing_it_wrong( 'VillaTheme_Require_Environment', sprintf( 955 /* translators: %s: plugins_loaded */ 956 __( 'VillaTheme_Require_Environment should not be run before the %s hook.' ), 957 '<code>plugins_loaded</code>' 958 ), '6.2.0' ); 959 } 960 961 $args = wp_parse_args( $args, [ 962 'plugin_name' => '', 963 'php_version' => '', 964 'wp_version' => '', 965 'wc_verison' => '', 966 'require_plugins' => [], 967 ] ); 968 969 $this->plugin_name = $args['plugin_name']; 970 971 $this->check( $args ); 972 973 add_action( 'admin_notices', [ $this, 'notice' ] ); 974 } 975 976 protected function check( $args ) { 977 if ( ! function_exists( 'install_plugin_install_status' ) ) { 978 require_once ABSPATH . 'wp-admin/includes/plugin-install.php'; 979 } 980 981 if ( ! function_exists( 'is_plugin_active' ) ) { 982 require_once ABSPATH . 'wp-admin/includes/plugin.php'; 983 } 984 985 if ( ! empty( $args['php_version'] ) ) { 986 $compatible_php = is_php_version_compatible( $args['php_version'] ); 987 if ( ! $compatible_php ) { 988 $this->notices[] = sprintf( "PHP version at least %s.", esc_html( $args['php_version'] ) ); 989 } 990 } 991 992 if ( ! empty( $args['wp_version'] ) ) { 993 $compatible_wp = is_wp_version_compatible( $args['wp_version'] ); 994 if ( ! $compatible_wp ) { 995 $this->notices[] = sprintf( "WordPress version at least %s.", esc_html( $args['wp_version'] ) ); 996 } 997 } 998 999 if ( ! empty( $args['require_plugins'] ) ) { 1000 foreach ( $args['require_plugins'] as $plugin ) { 1001 if ( empty( $plugin['version'] ) ) { 1002 $plugin['version'] = ''; 1003 } 1004 1005 $status = install_plugin_install_status( $plugin ); 1006 $require_plugin_name = $plugin['name'] ?? ''; 1007 1008 $requires_php = isset( $plugin['requires_php'] ) ? $plugin['requires_php'] : null; 1009 $requires_wp = isset( $plugin['requires'] ) ? $plugin['requires'] : null; 1010 1011 $compatible_php = is_php_version_compatible( $requires_php ); 1012 $compatible_wp = is_wp_version_compatible( $requires_wp ); 1013 1014 if ( ! $compatible_php || ! $compatible_wp ) { 1015 continue; 1016 } 1017 1018 switch ( $status['status'] ) { 1019 1020 case 'install': 1021 $this->notices[] = sprintf( "%s to be installed. <a href='%s' target='_blank' class='button button-primary' style='vertical-align: middle'>Install %s</a>", 1022 esc_html( $require_plugin_name ), 1023 esc_url( ! empty( $status['url'] ) ? $status['url'] : '#' ), 1024 esc_html( $require_plugin_name ) ); 1025 1026 break; 1027 1028 default: 1029 1030 if ( ! is_plugin_active( $status['file'] ) && current_user_can( 'activate_plugin', $status['file'] ) ) { 1031 $activate_url = add_query_arg( 1032 [ 1033 '_wpnonce' => wp_create_nonce( 'activate-plugin_' . $status['file'] ), 1034 'action' => 'activate', 1035 'plugin' => $status['file'], 1036 ], 1037 network_admin_url( 'plugins.php' ) 1038 ); 1039 1040 $this->notices[] = sprintf( "%s is installed and activated. <a href='%s' target='_blank' class='button button-primary' style='vertical-align: middle'>Active %s</a>", 1041 esc_html( $require_plugin_name ), 1042 esc_url( $activate_url ), 1043 esc_html( $require_plugin_name ) ); 1044 1045 } 1046 1047 if ( $plugin['slug'] == 'woocommerce' && ! empty( $args['wc_version'] ) && is_plugin_active( $status['file'] ) ) { 1048 $wc_current_version = get_option( 'woocommerce_version' ); 1049 if ( ! version_compare( $wc_current_version, $args['wc_version'], '>=' ) ) { 1050 $this->notices[] = sprintf( "WooCommerce version at least %s.", esc_html( $args['wc_version'] ) ); 1051 } 1052 } 1053 1054 break; 1055 } 1056 } 1057 } 1058 } 1059 1060 public function notice() { 1061 $screen = get_current_screen(); 1062 1063 if ( ! current_user_can( 'manage_options' ) || $screen->id === 'update' ) { 1064 return; 1065 } 1066 1067 if ( ! empty( $this->notices ) ) { 1068 ?> 1069 <div class="error"> 1070 <?php 1071 if ( count( $this->notices ) > 1 ) { 1072 printf( "<p>%s requires:</p>", esc_html( $this->plugin_name ) ); 1073 ?> 1074 <ol> 1075 <?php 1076 foreach ( $this->notices as $notice ) { 1077 printf( "<li>%s</li>", wp_kses_post( $notice ) ); 1078 } 1079 ?> 1080 </ol> 1081 <?php 1082 } else { 1083 printf( "<p>%s requires %s</p>", esc_html( $this->plugin_name ), wp_kses_post( current( $this->notices ) ) ); 1084 } 1085 ?> 1086 </div> 1087 <?php 1088 } 1089 } 1090 1091 public function has_error() { 1092 return ! empty( $this->notices ); 1093 } 1094 } 1095 } -
woo-notification/trunk/readme.txt
r2924703 r2933114 4 4 Tags: woocommerce, notify, marketing, boost sales ,recent sales popup,live sales,recent sales notification, villatheme, woocommerce notification, up sell 5 5 Requires at least: 5.0 6 Tested up to: 6.2 .07 WC tested up to: 7. 7.06 Tested up to: 6.2 7 WC tested up to: 7.8 8 8 Stable tag: 1.2.9 9 9 License: GPLv2 or later … … 241 241 4. Settings products 242 242 5. Front end 243 243 244 == Changelog == 245 246 /**1.2.12 - 2023.07.03**/ 247 – Updated: Compatible with WooCommerce HPOS(COT) 244 248 245 249 /**1.2.11 - 2023.06.12**/ -
woo-notification/trunk/woo-notification.php
r2924703 r2933114 4 4 * Plugin URI: https://villatheme.com/extensions/woocommerce-notification-boost-sales/ 5 5 * Description: Increase conversion rate by highlighting other customers that have bought products. 6 * Version: 1.2.1 16 * Version: 1.2.12 7 7 * Author: Andy Ha (villatheme.com) 8 8 * Author URI: http://villatheme.com … … 12 12 * Tested up to: 6.2 13 13 * WC requires at least: 5.0 14 * WC tested up to: 7. 714 * WC tested up to: 7.8 15 15 */ 16 16 17 if ( ! defined( 'ABSPATH' ) ) { 17 18 exit; 18 19 } 19 define( 'VI_WNOTIFICATION_F_VERSION', '1.2.11' ); 20 /** 21 * Detect plugin. For use on Front End only. 22 */ 23 include_once( ABSPATH . 'wp-admin/includes/plugin.php' ); 24 if ( is_plugin_active( 'woocommerce-notification/woocommerce-notification.php' ) ) { 25 return; 26 } 27 if ( is_plugin_active( 'woocommerce/woocommerce.php' ) ) { 28 $init_file = WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . "woo-notification" . DIRECTORY_SEPARATOR . "includes" . DIRECTORY_SEPARATOR . "define.php"; 29 require_once $init_file; 30 } 20 21 define( 'VI_WNOTIFICATION_F_VERSION', '1.2.12' ); 31 22 32 23 /** … … 37 28 register_activation_hook( __FILE__, array( $this, 'install' ) ); 38 29 register_deactivation_hook( __FILE__, array( $this, 'uninstall' ) ); 39 add_action( 'admin_notices', array( $this, 'global_note' ) ); 30 add_action( 'plugins_loaded', array( $this, 'init' ) ); 31 add_action( 'before_woocommerce_init', [ $this, 'custom_order_tables_declare_compatibility' ] ); 40 32 } 41 33 … … 43 35 * 44 36 */ 45 function global_note() { 46 if ( ! is_plugin_active( 'woocommerce/woocommerce.php' ) ) { 47 ?> 48 <div id="message" class="error"> 49 <p><?php esc_html_e( 'Please install and activate WooCommerce to use Notification for WooCommerce plugin.', 'woo-notification' ); ?></p> 50 </div> 51 <?php 37 function init() { 38 $include_dir = plugin_dir_path( __FILE__ ) . 'includes/'; 39 40 if ( ! class_exists( 'VillaTheme_Require_Environment' ) ) { 41 include_once $include_dir . 'support.php'; 52 42 } 43 44 if ( is_plugin_active( 'woocommerce-notification/woocommerce-notification.php' ) ) { 45 return; 46 } 47 48 $environment = new \VillaTheme_Require_Environment( [ 49 'plugin_name' => 'Notification for WooCommerce', 50 'php_version' => '7.0', 51 'wp_version' => '5.0', 52 'wc_version' => '5.0', 53 'require_plugins' => [ [ 'slug' => 'woocommerce', 'name' => 'WooCommerce' ] ] 54 ] 55 ); 56 57 if ( $environment->has_error() ) { 58 return; 59 } 60 61 require_once $include_dir . "define.php"; 53 62 } 54 63 … … 74 83 75 84 } 85 86 public function custom_order_tables_declare_compatibility() { 87 if ( class_exists( \Automattic\WooCommerce\Utilities\FeaturesUtil::class ) ) { 88 \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', __FILE__, true ); 89 } 90 } 76 91 } 77 92
Note: See TracChangeset
for help on using the changeset viewer.