/home/techb158/public_html/wp-content/plugins/optinmonster/OMAPI
NameSizeModeActions
EasyDigitalDownloads/-0755rm
Elementor/-0755rm
Integrations/-0755rm
MemberPress/-0755rm
Plugins/-0755rm
Promos/-0755rm
Rules/-0755rm
Shortcodes/-0755rm
WooCommerce/-0755rm
WPForms/-0755rm
Actions.php79700666editdlrm
Ajax.php14940666editdlrm
Api.php145070666editdlrm
ApiAuth.php24630666editdlrm
ApiKey.php52030666editdlrm
AssetLoader.php54890666editdlrm
BaseRestApi.php68890666editdlrm
Blocks.php131050666editdlrm
ClassicEditor.php70840666editdlrm
ConstantContact.php75910666editdlrm
Debug.php45920666editdlrm
EasyDigitalDownloads.php95530666editdlrm
Elementor.php54930666editdlrm
Inserter.php115710666editdlrm
InstallSkin.php13860666editdlrm
InstallSkinCompat.php13950666editdlrm
MailPoet.php139740666editdlrm
MemberPress.php42160666editdlrm
Menu.php173010666editdlrm
Notifications.php189100666editdlrm
OmuApi.php41220666editdlrm
Output.php258480666editdlrm
Pages.php180190666editdlrm
Partners.php55570666editdlrm
Plugins.php249230666editdlrm
Promos.php11310666editdlrm
Refresh.php65530666editdlrm
RestApi.php441900666editdlrm
RevenueAttribution.php30370666editdlrm
Review.php14820666editdlrm
Rules.php240000666editdlrm
Save.php119990666editdlrm
Shortcode.php36670666editdlrm
Sites.php85530666editdlrm
Support.php91920666editdlrm
Type.php37220666editdlrm
Urls.php89510666editdlrm
Utils.php75890666editdlrm
Validate.php92660666editdlrm
Welcome.php49290666editdlrm
Widget.php66620666editdlrm
WooCommerce.php200450666editdlrm
WpErrorException.php7140666editdlrm
WPForms.php26650666editdlrm
Edit: /home/techb158/public_html/wp-content/plugins/optinmonster/OMAPI/Refresh.php (6553B)
100, 'status' => 'all', ); /** * OMAPI_Api object * * @var null|OMAPI_Api */ public $api = null; /** * WP_Error object if refresh fails. * * @var null|WP_Error */ public $error = null; /** * Primary class constructor. * * @since 1.0.0 */ public function __construct() { // Set our object. $this->set(); } /** * Sets our object instance and base class instance. * * @since 1.0.0 */ public function set() { self::$instance = $this; $this->base = OMAPI::get_instance(); // If WPML is enabled, add the language domains to the parameter. if ( OMAPI_Utils::is_wpml_active() ) { $this->api_args['wpml_domains'] = json_encode( OMAPI_Utils::get_wpml_language_domains() ); } } /** * Refresh the optins. * * @since 1.0.0 * * @param string $api_key API key. * * @return WP_Error|bool True if successful. */ public function refresh( $api_key = null ) { $this->api = OMAPI_Api::build( 'v1', 'optins', 'GET', $api_key ? array( 'apikey' => $api_key ) : $api_key ); $args = $this->setup_api( $api_key, $this->api_args ); $results = array(); $body = $this->api->request( $args ); // Loop through paginated requests until we have fetched all the campaigns. while ( ! is_wp_error( $body ) || empty( $body ) ) { $limit = absint( wp_remote_retrieve_header( $this->api->response, 'limit' ) ); $page = absint( wp_remote_retrieve_header( $this->api->response, 'page' ) ); $total = absint( wp_remote_retrieve_header( $this->api->response, 'total' ) ); $total_pages = self::total_pages( $total, $limit ); $results = array_merge( $results, (array) $body ); // If we've reached the end, prevent any further requests. if ( $page >= $total_pages || 0 === $limit ) { break; } $args['page'] = $page + 1; // Request the next page. $body = $this->api->request( $args ); } if ( is_wp_error( $body ) ) { $this->handle_error( $body ); } else { // Store the optin data. $this->base->save->store_optins( $results ); // Update our sites as well. $result = $this->base->sites->fetch( $api_key ); // Update the option to remove stale error messages. $option = $this->base->get_option(); $option['is_invalid'] = false; $option['is_expired'] = false; $option['is_disabled'] = false; $option['connected'] = time(); if ( is_wp_error( $result ) ) { $this->error = $result; } else { $option = array_merge( $option, $result ); } $this->base->save->update_option( $option ); } return $this->error ? $this->error : true; } /** * Number of pages for a paginated API response. * * A missing or empty `limit` response header resolves to `0`; dividing by * it is a fatal DivisionByZeroError on PHP 8.0+, so a non-positive limit * yields 0 pages and the pagination loop terminates via its `0 === $limit` * guard. * * @since 2.17.0 * * @param int $total Total item count reported by the API. * @param int $limit Items-per-page reported by the API. * * @return int */ public static function total_pages( $total, $limit ) { return $limit > 0 ? (int) ceil( $total / $limit ) : 0; } /** * Trigger a refresh for given campaign. * * @since 1.9.10 * * @param string $campaign_id The campaign id (slug). * * @return WP_Error|bool True if successful. */ public function sync( $campaign_id ) { $time = time(); $path = "for-wp/{$campaign_id}?t={$time}"; $this->api = OMAPI_Api::build( 'v1', $path, 'GET' ); $body = $this->api->request( $this->setup_api() ); if ( is_wp_error( $body ) ) { // If campaign is gone, delete the optin. if ( 'campaign-error' === $body->get_error_code() && (string) '404' === (string) $body->get_error_data() ) { $result = $this->base->save->delete_optin( $campaign_id, true ); } $this->handle_error( $body ); } else { // Store the optin data. $this->base->save->add_optins( (array) $body, false ); } return $this->error ? $this->error : true; } /** * Gets contextual info for API requests. * * @since 1.9.10 * * @param array $args Array of args. * * @return arry Modified array of args. */ public function get_info_args( $args = array() ) { // Set additional flags. $args['wp'] = $GLOBALS['wp_version']; $args['php'] = PHP_MAJOR_VERSION . '.' . PHP_MINOR_VERSION; $args['av'] = $this->base->asset_version(); $args['v'] = $this->base->version; if ( OMAPI_WooCommerce::is_active() ) { $args['wc'] = OMAPI_WooCommerce::version(); } $args = array_merge( $args, OMAPI_Api::get_url_args() ); return $args; } /** * Handles setting up the API request. * * @since 1.9.10 * * @param string $api_key API key. * @param array $args Array of request args. * * @return arry Modified array of request args. */ protected function setup_api( $api_key = null, $args = array() ) { if ( $api_key ) { $this->api->set( 'apikey', $api_key ); } $this->api->clear_additional_data(); // Set additional flags. return $this->get_info_args( $args ); } /** * Handles errors occurring during refresh. * * @since 1.9.10 * * @param WP_Error $error WP_Error object. * * @return OMAPI_Refresh */ protected function handle_error( $error ) { switch ( $error->get_error_code() ) { // If no optins available, make sure they get deleted. case 'optins': case 'no-campaigns-error': $this->base->save->store_optins( array() ); break; case 'referrer-error': $api = OMAPI_Api::instance(); $result = $this->base->sites->check_existing_site( $api->get_creds() ); if ( is_wp_error( $result ) ) { $error = $result; } break; } // Set an error message. $this->error = $error; return $this; } }