From fd452b42208d042e655e4d3700748012968bcd5e Mon Sep 17 00:00:00 2001 From: Rajat Patel Date: Wed, 25 Dec 2024 15:39:06 +0530 Subject: [PATCH 1/2] Recreate missing schedule import --- .../class-import-meetup-events-common.php | 16 ++++++ .../class-import-meetup-events-list-table.php | 57 +++++++++++++++++++ 2 files changed, 73 insertions(+) diff --git a/includes/class-import-meetup-events-common.php b/includes/class-import-meetup-events-common.php index 70068f9..5da82af 100644 --- a/includes/class-import-meetup-events-common.php +++ b/includes/class-import-meetup-events-common.php @@ -901,6 +901,22 @@ public function ime_get_country_code( $country ) { } return $country; } + + /** + * Create missing Scheduled Import + * + * @param int $post_id Post id. + */ + public function ime_recreate_missing_schedule_import( $post_id ){ + + $si_data = get_post_meta( $post_id, 'import_eventdata', true ); + $import_frequency = ( $si_data['import_frequency'] ) ? $si_data['import_frequency'] : 'not_repeat'; + $cron_time = time() - (int) ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ); + + if( $import_frequency !== 'not_repeat' ) { + $scheduled = wp_schedule_event( $cron_time, $import_frequency, 'ime_run_scheduled_import', array( 'post_id' => $post_id ) ); + } + } } /** diff --git a/includes/class-import-meetup-events-list-table.php b/includes/class-import-meetup-events-list-table.php index 1ef0d88..35cae3f 100644 --- a/includes/class-import-meetup-events-list-table.php +++ b/includes/class-import-meetup-events-list-table.php @@ -128,6 +128,7 @@ function get_columns() { 'import_status' => __( 'Import Event Status', 'import-meetup-events' ), 'import_category' => __( 'Import Category', 'import-meetup-events' ), 'import_frequency' => __( 'Import Frequency', 'import-meetup-events' ), + 'next_run' => __( 'Next Run', 'import-meetup-events' ), 'action' => __( 'Action', 'import-meetup-events' ), ); return $columns; @@ -199,6 +200,7 @@ function get_scheduled_import_data( $origin = '' ) { } $importdata_query = new WP_Query( $query_args ); $scheduled_import_data['total_records'] = ( $importdata_query->found_posts ) ? (int) $importdata_query->found_posts : 0; + $next_run_times = $this->get_ime_next_run_times(); // The Loop. if ( $importdata_query->have_posts() ) { while ( $importdata_query->have_posts() ) { @@ -272,12 +274,26 @@ function get_scheduled_import_data( $origin = '' ) { } wp_reset_postdata(); + $next_run = '-'; + if(isset($next_run_times[$import_id]) && !empty($next_run_times[$import_id])){ + $next_time = $next_run_times[$import_id]; + $next_run = sprintf( '%s (%s)', + esc_html( get_date_from_gmt( date( 'Y-m-d H:i:s', $next_time ), 'Y-m-d H:i:s' ) ), + esc_html( human_time_diff( current_time( 'timestamp', true ), $next_time ) ) + ); + } + + if( $next_run == '-' ){ + $ime_events->common->ime_recreate_missing_schedule_import( $import_id ); + } + $scheduled_import_data['import_data'][] = array( 'ID' => $import_id, 'title' => get_the_title(), 'import_status' => ucfirst( $import_status ), 'import_category' => implode( ', ', $term_names ), 'import_frequency'=> isset( $import_data['import_frequency'] ) ? ucfirst( $import_data['import_frequency'] ) : '', + 'next_run' => $next_run, 'import_origin' => $import_origin, 'last_import' => $last_import_history_date, ); @@ -287,6 +303,47 @@ function get_scheduled_import_data( $origin = '' ) { wp_reset_postdata(); return $scheduled_import_data; } + + /** + * Get IME crons. + * + * @return Array + */ + function get_ime_crons(){ + $crons = array(); + if(function_exists('_get_cron_array') ){ + $crons = _get_cron_array(); + } + $wpea_scheduled = array_filter($crons, function($cron) { + $cron_name = array_keys($cron) ? array_keys($cron)[0] : ''; + if (strpos($cron_name, 'ime_run_scheduled_import') !== false) { + return true; + } + return false; + }); + return $wpea_scheduled; + } + + + /** + * Get Next run time array for schdeuled import. + * + * @return Array + */ + function get_ime_next_run_times(){ + $next_runs = array(); + $crons = $this->get_ime_crons(); + foreach($crons as $time => $cron){ + foreach($cron as $cron_name){ + foreach($cron_name as $cron_post_id){ + if( isset($cron_post_id['args']) && isset($cron_post_id['args']['post_id']) ){ + $next_runs[$cron_post_id['args']['post_id']] = $time; + } + } + } + } + return $next_runs; + } } /** From 4ed012e5c6ecfa01351d71cc2fd11881377939e1 Mon Sep 17 00:00:00 2001 From: "WordPress .pot File Generator" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2024 10:14:02 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=94=84=20Generated=20POT=20File?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- languages/import-meetup-events.pot | 44 ++++++++++++++++-------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/languages/import-meetup-events.pot b/languages/import-meetup-events.pot index b31fc33..44a5ee2 100644 --- a/languages/import-meetup-events.pot +++ b/languages/import-meetup-events.pot @@ -9,7 +9,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"POT-Creation-Date: 2024-11-30T07:24:45+00:00\n" +"POT-Creation-Date: 2024-12-25T10:14:01+00:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "X-Generator: WP-CLI 2.11.0\n" "X-Domain: import-meetup-events\n" @@ -172,7 +172,7 @@ msgid "Upgrade to Pro" msgstr "" #: includes/class-import-meetup-events-admin.php:130 -#: includes/class-import-meetup-events-list-table.php:406 +#: includes/class-import-meetup-events-list-table.php:463 msgid "Import" msgstr "" @@ -403,12 +403,12 @@ msgid "Event(s) are imported successfully." msgstr "" #: includes/class-import-meetup-events-common.php:342 -#: includes/class-import-meetup-events-list-table.php:368 +#: includes/class-import-meetup-events-list-table.php:425 msgid "%d Created" msgstr "" #: includes/class-import-meetup-events-common.php:345 -#: includes/class-import-meetup-events-list-table.php:371 +#: includes/class-import-meetup-events-list-table.php:428 msgid "%d Updated" msgstr "" @@ -762,14 +762,14 @@ msgid "Event Date" msgstr "" #: includes/class-import-meetup-events-list-table.php:66 -#: includes/class-import-meetup-events-list-table.php:139 -#: includes/class-import-meetup-events-list-table.php:341 -#: includes/class-import-meetup-events-list-table.php:417 +#: includes/class-import-meetup-events-list-table.php:140 +#: includes/class-import-meetup-events-list-table.php:398 +#: includes/class-import-meetup-events-list-table.php:474 msgid "Delete" msgstr "" #: includes/class-import-meetup-events-list-table.php:83 -#: includes/class-import-meetup-events-list-table.php:348 +#: includes/class-import-meetup-events-list-table.php:405 msgid "Origin" msgstr "" @@ -790,7 +790,7 @@ msgid "Import Event Status" msgstr "" #: includes/class-import-meetup-events-list-table.php:129 -#: includes/class-import-meetup-events-list-table.php:407 +#: includes/class-import-meetup-events-list-table.php:464 msgid "Import Category" msgstr "" @@ -799,47 +799,51 @@ msgid "Import Frequency" msgstr "" #: includes/class-import-meetup-events-list-table.php:131 -#: includes/class-import-meetup-events-list-table.php:611 +msgid "Next Run" +msgstr "" + +#: includes/class-import-meetup-events-list-table.php:132 +#: includes/class-import-meetup-events-list-table.php:668 msgid "Action" msgstr "" -#: includes/class-import-meetup-events-list-table.php:270 +#: includes/class-import-meetup-events-list-table.php:272 msgid "Last Import: %s ago" msgstr "" -#: includes/class-import-meetup-events-list-table.php:374 +#: includes/class-import-meetup-events-list-table.php:431 msgid "%d Skipped" msgstr "" -#: includes/class-import-meetup-events-list-table.php:377 +#: includes/class-import-meetup-events-list-table.php:434 msgid "%d Skipped in Trash" msgstr "" -#: includes/class-import-meetup-events-list-table.php:408 +#: includes/class-import-meetup-events-list-table.php:465 msgid "Import Date" msgstr "" -#: includes/class-import-meetup-events-list-table.php:409 +#: includes/class-import-meetup-events-list-table.php:466 msgid "Import Stats" msgstr "" -#: includes/class-import-meetup-events-list-table.php:471 +#: includes/class-import-meetup-events-list-table.php:528 msgid "Warning!! Are you sure you want to delete all these import histories? Import history will be permanently deleted." msgstr "" -#: includes/class-import-meetup-events-list-table.php:474 +#: includes/class-import-meetup-events-list-table.php:531 msgid "Clear Import History" msgstr "" -#: includes/class-import-meetup-events-list-table.php:608 +#: includes/class-import-meetup-events-list-table.php:665 msgid "ID" msgstr "" -#: includes/class-import-meetup-events-list-table.php:609 +#: includes/class-import-meetup-events-list-table.php:666 msgid "Title" msgstr "" -#: includes/class-import-meetup-events-list-table.php:610 +#: includes/class-import-meetup-events-list-table.php:667 msgid "Shortcode" msgstr ""