File "function-include-action-scheduler.php"

Full Path: /home/capoeirajd/www/wp-content/plugins/mailchimp-for-woocommerce/includes/function-include-action-scheduler.php
File size: 1.76 KB
MIME-type: text/x-php
Charset: utf-8

<?php

/**
 * Trigger $X additional loopback requests with unique URL params.
 */
function mailchimp_request_additional_runners() {
    // allow self-signed SSL certificates
    add_filter( 'https_local_ssl_verify', '__return_false', 100 );
    $processes = defined('MAILCHIMP_HIGH_PERFORMANCE_PROCESSES') ?
        (int) MAILCHIMP_HIGH_PERFORMANCE_PROCESSES : 5;
    if (empty($processes)) {
        return;
    }
    for ( $i = 0; $i < $processes; $i++ ) {
        wp_remote_post( admin_url( 'admin-ajax.php' ), array(
            'method'      => 'POST',
            'timeout'     => 45,
            'redirection' => 5,
            'httpversion' => '1.0',
            'blocking'    => false,
            'headers'     => array(),
            'body'        => array(
                'action'     => 'mailchimp_create_additional_runners',
                'instance'   => $i,
                'mailchimp_actionscheduler_nonce' => wp_create_nonce( 'mailchimp_additional_runner_' . $i ),
            ),
            'cookies'     => array(),
        ) );
    }
    mailchimp_debug('actionscheduler', "increased processes by {$processes}");
}

add_action( 'action_scheduler_run_queue', 'mailchimp_request_additional_runners', 0 );

/**
 * Handle requests initiated by eg_request_additional_runners() and start a queue runner if the request is valid.
 */
function mailchimp_create_additional_runners() {
    if ( isset( $_POST['mailchimp_actionscheduler_nonce'] ) && isset( $_POST['instance'] ) && wp_verify_nonce( $_POST['mailchimp_actionscheduler_nonce'], 'mailchimp_additional_runner_' . $_POST['instance'] ) ) {
        ActionScheduler_QueueRunner::instance()->run();
    }
    wp_die();
}

add_action( 'wp_ajax_nopriv_mailchimp_create_additional_runners', 'mailchimp_create_additional_runners', 0 );