Hello world!

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

/* JS Worker for wp-cron.php */

export default {
  async fetch(req, env, ctx) {
    const url = new URL(req.url);
    
    // If the request is for wp-cron.php, trigger the cron job
    if (url.pathname === "/wp-cron.php") {
      return handleScheduled(env.DEFAULT_DOMAIN, env.WORKER_SECRET_KEY);
    }

    // Allow all other requests to pass through normally
    return fetch(req);
  },

  async scheduled(event, env, ctx) {
    console.log(`Cron triggered at: ${new Date(event.scheduledTime).toISOString()}`);
    ctx.waitUntil(handleScheduled(env.DEFAULT_DOMAIN, env.WORKER_SECRET_KEY));
  },
};

async function handleScheduled(domain, secretKey) {
  const url = `https://${domain}/wp-cron.php?doing_wp_cron`;

  try {
    const response = await fetch(url, {
      method: "GET",
      headers: {
        "User-Agent": "Cloudflare-Worker-Cron",
        "X-Worker-Auth": secretKey,
        "Cache-Control": "no-cache"
      },
      cf: { cacheTtl: 0 }
    });

    if (!response.ok) {
      console.error(`Failed to trigger WP-Cron: ${response.status} ${response.statusText}`);
      return new Response("Cron failed", { status: 500 });
    }

    return new Response("Cron executed successfully", { status: 200 });
  } catch (error) {
    console.error("Error triggering WP-Cron:", error);
    return new Response("Error triggering WP-Cron", { status: 500 });
  }
}

Similar Posts

Dodaj odgovor

Vaš e-naslov ne bo objavljen. * označuje zahtevana polja