Created
August 24, 2017 04:52
-
-
Save dancr13/55a862090585beb8c5e638aa7c7fc041 to your computer and use it in GitHub Desktop.
Prueba Importador Json
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* WordPress Cron Implementation for hosts, which do not offer CRON or for which | |
* the user has not set up a CRON job pointing to this file. | |
* | |
* The HTTP request to this file will not slow down the visitor who happens to | |
* visit when the cron job is needed to run. | |
* | |
* @package WordPress | |
*/ | |
ignore_user_abort(true); | |
if ( !empty($_POST) || defined('DOING_AJAX') || defined('DOING_CRON') ) | |
die(); | |
/** | |
* Tell WordPress we are doing the CRON task. | |
* | |
* @var bool | |
*/ | |
define('DOING_CRON', true); | |
if ( !defined('ABSPATH') ) { | |
/** Set up WordPress environment */ | |
require_once( dirname( __FILE__ ) . '/wp-load.php' ); | |
} | |
/** | |
* Retrieves the cron lock. | |
* | |
* Returns the uncached `doing_cron` transient. | |
* | |
* @ignore | |
* @since 3.3.0 | |
* | |
* @return string|false Value of the `doing_cron` transient, 0|false otherwise. | |
*/ | |
function _get_cron_lock() { | |
global $wpdb; | |
$value = 0; | |
if ( wp_using_ext_object_cache() ) { | |
/* | |
* Skip local cache and force re-fetch of doing_cron transient | |
* in case another process updated the cache. | |
*/ | |
$value = wp_cache_get( 'doing_cron', 'transient', true ); | |
} else { | |
$row = $wpdb->get_row( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = %s LIMIT 1", '_transient_doing_cron' ) ); | |
if ( is_object( $row ) ) | |
$value = $row->option_value; | |
} | |
return $value; | |
} | |
if ( false === $crons = _get_cron_array() ) | |
die(); | |
$keys = array_keys( $crons ); | |
$gmt_time = microtime( true ); | |
if ( isset($keys[0]) && $keys[0] > $gmt_time ) | |
die(); | |
// The cron lock: a unix timestamp from when the cron was spawned. | |
$doing_cron_transient = get_transient( 'doing_cron' ); | |
// Use global $doing_wp_cron lock otherwise use the GET lock. If no lock, trying grabbing a new lock. | |
if ( empty( $doing_wp_cron ) ) { | |
if ( empty( $_GET[ 'doing_wp_cron' ] ) ) { | |
// Called from external script/job. Try setting a lock. | |
if ( $doing_cron_transient && ( $doing_cron_transient + WP_CRON_LOCK_TIMEOUT > $gmt_time ) ) | |
return; | |
$doing_cron_transient = $doing_wp_cron = sprintf( '%.22F', microtime( true ) ); | |
set_transient( 'doing_cron', $doing_wp_cron ); | |
} else { | |
$doing_wp_cron = $_GET[ 'doing_wp_cron' ]; | |
} | |
} | |
/* | |
* The cron lock (a unix timestamp set when the cron was spawned), | |
* must match $doing_wp_cron (the "key"). | |
*/ | |
if ( $doing_cron_transient != $doing_wp_cron ) | |
return; | |
foreach ( $crons as $timestamp => $cronhooks ) { | |
if ( $timestamp > $gmt_time ) | |
break; | |
foreach ( $cronhooks as $hook => $keys ) { | |
foreach ( $keys as $k => $v ) { | |
$schedule = $v['schedule']; | |
if ( $schedule != false ) { | |
$new_args = array($timestamp, $schedule, $hook, $v['args']); | |
call_user_func_array('wp_reschedule_event', $new_args); | |
} | |
wp_unschedule_event( $timestamp, $hook, $v['args'] ); | |
/** | |
* Fires scheduled events. | |
* | |
* @ignore | |
* @since 2.1.0 | |
* | |
* @param string $hook Name of the hook that was scheduled to be fired. | |
* @param array $args The arguments to be passed to the hook. | |
*/ | |
do_action_ref_array( $hook, $v['args'] ); | |
// If the hook ran too long and another cron process stole the lock, quit. | |
if ( _get_cron_lock() != $doing_wp_cron ) | |
return; | |
} | |
} | |
} | |
if ( _get_cron_lock() == $doing_wp_cron ) | |
delete_transient( 'doing_cron' ); | |
die(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment