Jake Vanderwerf
2025-12-21 3aada9949d51024a92a8b5c6cb70d12f9c3cac16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
 
if (!defined('ABSPATH')) {
    exit;
}
 
require(JVB_DIR . '/inc/helpers/breadcrumbs.php');
//require(JVB_DIR . '/inc/helpers/cache.php');
require(JVB_DIR . '/inc/helpers/commonPages.php');
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/forms.php');
require(JVB_DIR . '/inc/helpers/formatting.php');
//require(JVB_DIR . '/inc/helpers/icons.php');
require(JVB_DIR . '/inc/helpers/inlineStyles.php');
require(JVB_DIR . '/inc/helpers/legacy.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/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');
/**
 * 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)) {
            $callback();
            update_option($option, true);
        }
    }
}
 
function jvb_register_do_once(string $option, array $callback)
{
//    delete_option(BASE.'do_these_once');
    //Ensure we have the option starting with BASE
    $option = (str_starts_with($option, BASE)) ? $option : BASE.$option;
    $options = get_option(BASE.'do_these_once', []);
//    delete_option($option);
    if (!array_key_exists($option, $options)) {
        $options[$option] = $callback;
        update_option(BASE.'do_these_once', $options);
    }
}