diff --git a/assets/js/recommendations/interactive-task.js b/assets/js/recommendations/interactive-task.js index e7f511aa25..bc78f342f0 100644 --- a/assets/js/recommendations/interactive-task.js +++ b/assets/js/recommendations/interactive-task.js @@ -118,17 +118,25 @@ const prplInteractiveTaskFormListener = { .finally( () => { // Hide loading state. prplInteractiveTaskFormListener.hideLoading( formElement ); - - // Remove the form listener once the callback is executed. - formElement.removeEventListener( - 'submit', - formSubmitHandler - ); } ); }; // Add a form listener to the form. formElement.addEventListener( 'submit', formSubmitHandler ); + + // Remove the form listener when the popover is closed. + document.getElementById( popoverId ).addEventListener( + 'toggle', + ( toggleEvent ) => { + if ( toggleEvent.newState === 'closed' ) { + formElement.removeEventListener( + 'submit', + formSubmitHandler + ); + } + }, + { once: true } + ); }, settings: ( { diff --git a/classes/suggested-tasks/providers/class-set-valuable-post-types.php b/classes/suggested-tasks/providers/class-set-valuable-post-types.php index 8cc61a9c76..35d4f30ae4 100644 --- a/classes/suggested-tasks/providers/class-set-valuable-post-types.php +++ b/classes/suggested-tasks/providers/class-set-valuable-post-types.php @@ -1,6 +1,6 @@ get_suggested_tasks_db()->get_tasks_by( [ 'provider_id' => 'settings-saved' ] ); - if ( empty( $saved_posts ) ) { + $activity = \progress_planner()->get_activities__query()->query_activities( + [ + 'category' => 'suggested_task', + 'data_id' => static::PROVIDER_ID, + ] + ); + if ( ! empty( $activity ) ) { return false; } - // Is the task trashed? - $post_trashed = 'trash' === $saved_posts[0]->post_status; - // Upgraded from <= 1.2? $upgraded = (bool) \get_option( 'progress_planner_set_valuable_post_types', false ); // Include post types option empty? $include_post_types = \progress_planner()->get_settings()->get( 'include_post_types', [] ); - // Add the task only to users who have completed the "Settings saved" task and have upgraded from v1.2 or have 'include_post_types' option empty. - return $post_trashed && ( true === $upgraded || empty( $include_post_types ) ); + // Add the task only to users who have upgraded from v1.2 or have 'include_post_types' option empty. + return ( true === $upgraded || empty( $include_post_types ) ); } /**