Forum Replies Created

Viewing 4 replies - 16 through 19 (of 19 total)
  • Thread Starter lpaweb

    (@lpaweb)

    Hello again,

    I’ve the latest version of the plugin and the problem persists.

    Thank you

    Thread Starter lpaweb

    (@lpaweb)

    Hi Frank,

    I can’t find the event you’ve called on the wp-cron.php. Here is the file content:

    <?php
    /**
     * A pseudo-CRON daemon for scheduling WordPress tasks
     *
     * WP Cron is triggered when the site receives a visit. In the scenario
     * where a site may not receive enough visits to execute scheduled tasks
     * in a timely manner, this file can be called directly or via a server
     * CRON daemon for X number of times.
     *
     * Defining DISABLE_WP_CRON as true and calling this file directly are
     * mutually exclusive and the latter does not rely on the former to work.
     *
     * 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 );
    
    /* Don't make the request block till we finish, if possible. */
    if ( function_exists( 'fastcgi_finish_request' ) && version_compare( phpversion(), '7.0.16', '>=' ) ) {
    	if ( ! headers_sent() ) {
    		header( 'Expires: Wed, 11 Jan 1984 05:00:00 GMT' );
    		header( 'Cache-Control: no-cache, must-revalidate, max-age=0' );
    	}
    
    	fastcgi_finish_request();
    }
    
    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 __DIR__ . '/wp-load.php';
    }
    
    /**
     * Retrieves the cron lock.
     *
     * Returns the uncached <code>doing_cron</code> transient.
     *
     * @ignore
     * @since 3.3.0
     *
     * @global wpdb $wpdb WordPress database abstraction object.
     *
     * @return string|false Value of the <code>doing_cron</code> 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;
    }
    
    $crons = wp_get_ready_cron_jobs();
    if ( empty( $crons ) ) {
    	die();
    }
    
    $gmt_time = microtime( true );
    
    // 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, try to grab 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_wp_cron        = sprintf( '%.22F', microtime( true ) );
    		$doing_cron_transient = $doing_wp_cron;
    		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 ) {
    				wp_reschedule_event( $timestamp, $schedule, $hook, $v['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();

    Even on the plugin you’ve told me, i don’t have any cron with the name ‘in_stock_email_event’.

    Thank you,
    Miguel

    Thread Starter lpaweb

    (@lpaweb)

    Hi,

    The feature never worked before. I’m on the latest WordPress version and the test email is working fine. I can see the cron jobs on my installation. At the moment, the only cron running on the server is the wp-cron.php

    Thanks

    Thread Starter lpaweb

    (@lpaweb)

    Hi Tom,

    Thank you for your reply.
    The thing is, it works in all other pages the way it is now. It just doesn’t work on the Homepage.

    Regards.

Viewing 4 replies - 16 through 19 (of 19 total)