The rule of thumb is to never do anything which is not triggered by action or filter.
In this case you try register a hook before wordpress even finished to “boot”. This may work sometimes, but totally not an healthy idea. Use at least the ‘init’ hook (and even better the ‘wp_loaded’ if you can), to trigger you initialization, and do not do anything before that unless you have a very good reason.
As for the activation hook, be very careful with trusting it being triggered as it will not be triggered on multisite install, and not when updates are done, so you might as well plan in advance and detect by yourself when DB initialization or updates are required.
Related Posts:
- Add a new tab to WordPress Plugin install Listing
- Changing Plugin Load Order
- Admin settings update updating every time home page is hit?
- Global Objects and Public Methods
- How should you hook a session_start() when authoring a plugin?
- Init action hook running late after PayPal’s return url?
- How do you use the plugin boilerplate loader class to hook actions and filters?
- How Do I Load My Action Earlier Enough?
- Does WP fire delete_post when trashed posts are automatically deleted?
- Why does do_action pass a blank string as the first parameter if no $arg is set?
- How to add a link to WordPress Plugin install Listing
- I can’t find where a hook is being defined in a plugin – Easy Digital Downloads
- Call activation hook multiple times
- Two-step login process – Is it possible?
- How can I hook into existing WordPress Bulk actions?
- Hook for post permalink update
- Dynamically Override Fancy Title
- Get returned variable from a function to add_shortcode function
- Earliest WP Hook to Safely and Reliably Redirect
- Define a function outside a class and call the function using action or filter hook
- Create a plugin to change the action to which a function is hooked
- Can I differentiate between “Delete Post Permanently” and “Empty Trash” and do something for each accordingly?
- Synchronize Custom post type tags to WordPress default posts tags
- Adding Automatically To In WordPress Using Filter Referencing?
- comment_email hook doesn’t seem to work for comment editor field
- unable to stop loop when using wp_insert_post with publish_post hook
- How to edit mySQL wp_posts table from plugin php?
- Hook into theme-switching later than `setup_theme`
- Add tab to profile.php wordpress plugin development
- Is it possible to delay execution of shortcode output callback?
- WordPress Ajax callback function from plugin – OOP
- How do I change the initial quantity of a product in woocommerce?
- Where and how does WordPress store and use its plugin and hook information?
- Which are the hooks run before/after when a category’s deletion?
- edit_{$taxonomy} | Hook
- WordPress after content Hook & external template part
- How to update an existing table while updating plugin?
- best practice for query string values – get_query_var always empty for my value supplied in query string
- Modifying meta tags after doing ajax call in plugin
- .mo translation strings not loading in PHP scripts that handle AJAX calls
- Storing product price data in the database
- Where to add hooks in a class
- Trying to understand order and frequency of action hooks firing
- How to use output buffering in WordPress hooked functions?
- Adding option to Gallery shortcode
- do_action and add_action on two different installed plugins won’t work
- I have 2 plugins using the same wp_login action hook and one is not working
- Add a new confirmation page before saving
- How dynamic action login_form_{action} is working
- dbDelta not installing database
- What happens when two or more plugins use the same hook?
- Does admin_print_scripts-$hook_suffix work for nested paths to individual files?
- flush rewrite rules after plugin update?
- When does save_post hook fire on post save/update
- Plugin does not add action
- Add child pages to submenu automatically
- After plugin activation hook
- How to replace default comments with custom HTML?
- hook filter after the_content on a specific page
- Is there an admin hook that will let me read GET variable before it’s too late to set the header Location
- Why enqueue styles on hook?
- Call to undefined function is_home() or any conditional tags
- WooCommerce change Tax Class programmatically when Recalculating an existing Order [closed]
- Run command “composer install” when activating wordpress plugin
- Add a check box in Menu Settings
- Hide one specific woocoomerce product
- Using init hook for register_taxonomy is causing invalid_taxonomy in wp_insert_term()
- Ajax +wordpress onClick link redirect to new page and create html content
- How to replace settings in WordPress plugin from a theme
- Redirect returning users to a certain page?
- Serial Number from custom table not appear in woocommerce_email_before_order_table action
- Creating posts with links from a txt file
- Set the payment processor callbacks to a plugin
- Action / Hook when a new plugin is added
- apply_filters() and call_user_func() to define and call a function outside a class
- Getting Post ID at “stylesheet” and “template” hooks
- Trigger function on Remove block or add new block in Gutenberg JavaScript
- Woocommerce get_term_by() in transition_post_status hook doesn’t works
- Add two button to page and post admin to redirect to : add new & list of (posts – pages) just after saving post or page
- Limit get_next_post to posts from the same author
- Any way, hook to add content right before the “read more” link?
- Is there any way to get post meta from publish_post hook?
- Add a custom submenu under submenu in a Custom WordPress Plugin
- How do I ensure I can loop through every enqueued script and CSS?
- Plugin Development – Call to undefined function comment_exists()
- replacing jquery google cdn with a new version dynamically
- Prevent plugin activation and add admin notice
- Unable to show a message after plugin activation
- Does WordPress have something like timer hook?
- Can I use a hook other than ‘init’ to handle form submissions?
- Template file structure , wordpress hook for altering the template
- How do I replace title with my plugin?
- Looking for Hook that is fired after a plugin or wp upgrade is installed/updated
- Woocommerce: block user removing cart item
- how to insert content into wp_head after loop_end
- Apply function on all action hooks?
- How can I get a plugin to hook ‘dbdelta_queries’ — a filter used during version update?
- Send retrieve password notification email with custom HTML email template
- wp_head is not fired from the hook I have used in my plugin
- Trigger a JavaScript function based on the data fetched from Woo commerce hook