woocommerce-multilingual
/
vendor
/
otgs
/
installer
/
includes
/
class-otgs-installer-wp-components-hooks.php
CDTClient
4 weeks ago
admin-notices
4 weeks ago
buy-url
4 weeks ago
debug
4 weeks ago
exceptions
5 years ago
instances
4 weeks ago
loader
5 years ago
products
4 weeks ago
repository
4 weeks ago
rest
4 weeks ago
site-key
4 weeks ago
support
4 weeks ago
template-service
4 weeks ago
upgrade
4 weeks ago
utilities
4 weeks ago
wpml-content-stats
4 weeks ago
class-installer-dependencies.php
4 weeks ago
class-installer-theme.php
4 weeks ago
class-installer-upgrader-skins.php
4 weeks ago
class-otgs-installer-autoloader.php
5 years ago
class-otgs-installer-cloned-sites-handler.php
4 weeks ago
class-otgs-installer-debug-info.php
4 weeks ago
class-otgs-installer-factory.php
4 weeks ago
class-otgs-installer-filename-hooks.php
4 weeks ago
class-otgs-installer-icons.php
4 weeks ago
class-otgs-installer-loader.php
10 months ago
class-otgs-installer-package-product-finder.php
4 weeks ago
class-otgs-installer-package-product.php
4 weeks ago
class-otgs-installer-package.php
5 years ago
class-otgs-installer-php-functions.php
4 weeks ago
class-otgs-installer-plugin-factory.php
4 weeks ago
class-otgs-installer-plugin-finder.php
4 weeks ago
class-otgs-installer-plugin.php
4 weeks ago
class-otgs-installer-plugins-page-notice.php
4 weeks ago
class-otgs-installer-plugins-update-cache-cleaner.php
5 years ago
class-otgs-installer-settings.php
4 weeks ago
class-otgs-installer-source-factory.php
5 years ago
class-otgs-installer-source.php
4 weeks ago
class-otgs-installer-subscription-factory.php
5 years ago
class-otgs-installer-subscription-warning-message.php
4 weeks ago
class-otgs-installer-subscription.php
4 weeks ago
class-otgs-installer-wp-components-hooks.php
4 weeks ago
class-otgs-installer-wp-components-sender.php
4 weeks ago
class-otgs-installer-wp-components-setting-ajax.php
4 weeks ago
class-otgs-installer-wp-components-setting-resources.php
4 weeks ago
class-otgs-installer-wp-components-storage.php
4 weeks ago
class-otgs-installer-wp-share-local-components-setting-hooks.php
4 weeks ago
class-otgs-installer-wp-share-local-components-setting.php
4 weeks ago
class-translation-service-info.php
4 weeks ago
class-wp-installer-api.php
4 weeks ago
class-wp-installer-channels.php
4 weeks ago
class-wp-installer.php
4 weeks ago
functions-core.php
4 weeks ago
functions-templates.php
4 weeks ago
otgs-installer-autoload-classmap.php
10 months ago
class-otgs-installer-wp-components-hooks.php
75 lines
| 1 | <?php |
| 2 | |
| 3 | class OTGS_Installer_WP_Components_Hooks { |
| 4 | |
| 5 | const EVENT_SEND_COMPONENTS_MONTHLY = 'otgs_send_components_data'; |
| 6 | const EVENT_SEND_COMPONENTS_AFTER_REGISTRATION = 'otgs_send_components_data_on_product_registration'; |
| 7 | const REPORT_SCHEDULING_PERIOD = '+1 month'; |
| 8 | const MONTHLY_CRON = 'monthly'; |
| 9 | |
| 10 | private $storage; |
| 11 | |
| 12 | private $sender; |
| 13 | |
| 14 | private $setting; |
| 15 | |
| 16 | private $php_functions; |
| 17 | |
| 18 | public function __construct( |
| 19 | OTGS_Installer_WP_Components_Storage $storage, |
| 20 | OTGS_Installer_WP_Components_Sender $sender, |
| 21 | OTGS_Installer_WP_Share_Local_Components_Setting $setting, |
| 22 | OTGS_Installer_PHP_Functions $php_functions |
| 23 | ) { |
| 24 | $this->storage = $storage; |
| 25 | $this->sender = $sender; |
| 26 | $this->setting = $setting; |
| 27 | $this->php_functions = $php_functions; |
| 28 | } |
| 29 | |
| 30 | public function add_hooks() { |
| 31 | add_action( 'wp_ajax_end_user_get_info', array( $this, 'process_report_instantly' ) ); |
| 32 | add_action( 'wp_ajax_' . OTGS_Installer_WP_Components_Setting_Ajax::AJAX_ACTION, array( $this, 'force_send_components_data' ), OTGS_Installer_WP_Components_Setting_Ajax::SAVE_SETTING_PRIORITY + 1 ); |
| 33 | add_action( self::EVENT_SEND_COMPONENTS_MONTHLY, array( $this, 'send_components_data' ) ); |
| 34 | add_action( self::EVENT_SEND_COMPONENTS_AFTER_REGISTRATION, array( $this, 'send_components_data' ) ); |
| 35 | add_action( 'init', array( $this, 'schedule_components_report' ) ); |
| 36 | |
| 37 | add_filter( 'cron_schedules', array( $this, 'custom_monthly_cron_schedule' ) ); |
| 38 | } |
| 39 | |
| 40 | public function schedule_components_report() { |
| 41 | if ( wp_next_scheduled( self::EVENT_SEND_COMPONENTS_MONTHLY ) ) { |
| 42 | return; |
| 43 | } |
| 44 | |
| 45 | if ( $this->sender->allow_schedule_event() ) { |
| 46 | wp_schedule_event( strtotime( self::REPORT_SCHEDULING_PERIOD ), self::MONTHLY_CRON, self::EVENT_SEND_COMPONENTS_MONTHLY ); |
| 47 | } |
| 48 | } |
| 49 | |
| 50 | public function process_report_instantly() { |
| 51 | $this->storage->refresh_cache(); |
| 52 | $this->sender->send( $this->storage->get(), true ); |
| 53 | } |
| 54 | |
| 55 | public function force_send_components_data() { |
| 56 | $this->storage->refresh_cache(); |
| 57 | $this->sender->send( $this->storage->get() ); |
| 58 | } |
| 59 | |
| 60 | public function send_components_data() { |
| 61 | if ( $this->storage->is_outdated() ) { |
| 62 | $this->storage->refresh_cache(); |
| 63 | $this->sender->send( $this->storage->get() ); |
| 64 | } |
| 65 | } |
| 66 | |
| 67 | public function custom_monthly_cron_schedule( $schedules ) { |
| 68 | $schedules[self::MONTHLY_CRON] = array( |
| 69 | 'interval' => 2592000, |
| 70 | 'display' => __( 'Monthly', 'sitepress' ) |
| 71 | ); |
| 72 | return $schedules; |
| 73 | } |
| 74 | } |
| 75 |