ActionScheduler_wpPostStore::mark_complete
Record that an action was completed.
Method of the class: ActionScheduler_wpPostStore{}
Hooks from the method
Returns
null. Nothing (null).
Usage
$ActionScheduler_wpPostStore = new ActionScheduler_wpPostStore(); $ActionScheduler_wpPostStore->mark_complete( $action_id );
- $action_id(string) (required)
- ID of the completed action.
ActionScheduler_wpPostStore::mark_complete() ActionScheduler wpPostStore::mark complete code WC 10.3.3
public function mark_complete( $action_id ) {
$post = get_post( $action_id );
if ( empty( $post ) || ( self::POST_TYPE !== $post->post_type ) ) {
/* translators: %s is the action ID */
throw new InvalidArgumentException( sprintf( __( 'Unidentified action %s: we were unable to mark this action as having completed. It may may have been deleted by another process.', 'woocommerce' ), $action_id ) );
}
add_filter( 'wp_insert_post_data', array( $this, 'filter_insert_post_data' ), 10, 1 );
add_filter( 'pre_wp_unique_post_slug', array( $this, 'set_unique_post_slug' ), 10, 5 );
$result = wp_update_post(
array(
'ID' => $action_id,
'post_status' => 'publish',
),
true
);
remove_filter( 'wp_insert_post_data', array( $this, 'filter_insert_post_data' ), 10 );
remove_filter( 'pre_wp_unique_post_slug', array( $this, 'set_unique_post_slug' ), 10 );
if ( is_wp_error( $result ) ) {
throw new RuntimeException( $result->get_error_message() );
}
/**
* Fires after a scheduled action has been completed.
*
* @since 3.4.2
*
* @param int $action_id Action ID.
*/
do_action( 'action_scheduler_completed_action', $action_id );
}