$callback) { // delete_option($option); if (!get_option($option, false)) { error_log('Calling do once: '.$option); if (get_transient(BASE . $option)) { return; } set_transient(BASE . $option, true, 120); $callback(); update_option($option, true); } } } function jvb_register_do_once(string $option, array|string $callback):void { // delete_option(BASE.'do_these_once'); //Ensure we have the option starting with BASE $option = jvbCheckBase($option); // delete_option($option); // delete_option(BASE.'do_these_once'); $options = get_option(BASE.'do_these_once', []); // delete_option($option); if (!array_key_exists($option, $options)) {// Prevent concurrent runs $options[$option] = $callback; update_option(BASE.'do_these_once', $options); } } function jvbResponse(bool $success, ?string $msg = null):array { return [ 'success' => $success, 'message' => is_null($msg) ? ($success ? 'Completed successfully' : 'Something went wrong') : $msg ]; } function jvbTimelinePoints(int $ID, string $type, array $status = ['publish']):array { $type = jvbCheckBase($type); return get_children([ 'post_parent' => $ID, 'orderby' => 'date', 'order' => 'ASC', 'posts_per_page'=> -1, 'post_status' => $status, 'fields' => 'ids', 'post_type' => $type ]); }