0

この cronjob を WordPress カスタム プラグインに追加しましたが、この関数を手動で実行すると機能しますが、cronjob を使用すると機能しません。これが私のコードです!すべてのプラグイン ファイルが正しく読み込まれ、エラーは表示されません。誰でもこれを整理するのを手伝ってくれますか! 私はたくさん試しましたが、それでもうまくいきません。

    <?php

         if (!wp_next_scheduled('generateusedcarsfeed'))
        {
            wp_schedule_event(time() , '5mins', 'generateusedcarsfeed');
        }

        add_action('generateusedcarsfeed', 'generate_used_car_feed');
if (!wp_next_scheduled('generateusedcarsfeed'))
{
    wp_schedule_event(time() , '5mins', 'generateusedcarsfeed');
}

add_action('generateusedcarsfeed', 'generate_used_car_feed');

// Getting all used cars with all data

function generate_used_car_feed(){
    try{
        // for opening the csv file
        $file = fopen('all-cars-feed.csv', 'r');
        fwrite($file, '');
        $loop = new WP_Query($args);
        chmod('all-cars-feed.csv', 0777);

        // for creating array from csv file
        $file="all-cars-feed.csv";
        $csv= file_get_contents($file);
        $array = array_map("str_getcsv", explode("\n", $csv));
        $json_csv_arr = json_encode($array);
        $my_array_csv = json_decode($json_csv_arr, true);

        // for getting used car list from databse, only take publish used car
        global $wpdb;
        $query = "SELECT wp_postmeta.post_id, wp_postmeta.meta_value FROM wp_postmeta 
        INNER JOIN wp_posts ON wp_posts.id = wp_postmeta.post_id WHERE meta_key = 'car_registration_number' 
        AND post_status = 'publish'";
        $result = $wpdb->get_results($query);
        $json_reg_num = json_encode($result);
        $my_array = json_decode($json_reg_num, true);
        print_r($my_array); 
        foreach ($my_array as $value) {
            $car_reg_array = $value['meta_value'];
            $Post_id= $value['post_id'];
            $isTrue=true;

            $ch = fopen("all-cars-feed.csv", "r");
            while($row = fgetcsv($ch)) {
            if (in_array($car_reg_array, $row)) {
                echo 'found</hr>';
                $isTrue=false;
            }
         }
        if($isTrue)
        {
            $wpdb->query(
              'UPDATE   '.$wpdb->prefix.'posts SET post_status = "trash"
               WHERE ID = "'.$Post_id.'"');
        }
}

        //fclose($file);
    }
    catch(\Exception $e)
    {
        $txt = 'Message: ' . $e->getMessage();
        $myfile = fopen("newfile.txt", "w") or die("Unable to open file!");

        fwrite($fileLoger, $txt);
        fclose($fileLoger);
    }
}
4

1 に答える 1