| | |
| | | require(JVB_DIR . '/inc/helpers/crud.php'); |
| | | require(JVB_DIR . '/inc/helpers/dashboard.php'); |
| | | require(JVB_DIR . '/inc/helpers/directory.php'); |
| | | require(JVB_DIR . '/inc/helpers/email.php'); |
| | | //require(JVB_DIR . '/inc/helpers/email.php'); |
| | | require(JVB_DIR . '/inc/helpers/forms.php'); |
| | | require(JVB_DIR . '/inc/helpers/formatting.php'); |
| | | //require(JVB_DIR . '/inc/helpers/icons.php'); |
| | |
| | | require(JVB_DIR . '/inc/helpers/media.php'); |
| | | require(JVB_DIR . '/inc/helpers/members.php'); |
| | | require(JVB_DIR . '/inc/helpers/renderFields.php'); |
| | | require(JVB_DIR . '/inc/helpers/saveFields.php'); |
| | | //require(JVB_DIR . '/inc/helpers/saveFields.php'); |
| | | require(JVB_DIR . '/inc/helpers/terms.php'); |
| | | require(JVB_DIR . '/inc/helpers/time.php'); |
| | | require(JVB_DIR . '/inc/helpers/ui.php'); |
| | | //require(JVB_DIR . '/inc/helpers/umami.php'); |
| | | |
| | | add_action('init', 'jvb_do_once'); |
| | | add_action('wp_loaded', 'jvb_do_once',99); |
| | | /** |
| | | * Helper to do things once |
| | | * @return void |
| | | */ |
| | | function jvb_do_once():void |
| | | { |
| | | |
| | | // delete_option(BASE.'do_these_once'); |
| | | $options = get_option(BASE.'do_these_once', []); |
| | | |
| | | foreach ($options as $option => $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 $callback) |
| | | 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 = (str_starts_with($option, BASE)) ? $option : BASE.$option; |
| | | $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)) { |
| | | 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 |
| | | ]; |
| | | } |