There is no regular output and hence no header sent before template_redirect
on the front end. If you need sessions on the back end too, use the action wp_loaded
to cover both.
Example:
add_action( 'template_redirect', function() {
$status = session_status();
if ( PHP_SESSION_DISABLED === $status ) {
// That's why you cannot rely on sessions!
return;
}
if ( PHP_SESSION_NONE === $status ) {
session_start();
}
$_SESSION[ 'foo' ] = 'bar';
});
Keep in mind that using sessions adds a whole set of very complex problems to your code, including security, scalability (load balancers), and following time consuming support issues. I don’t recommend it.
Related Posts:
- External Authentication, session_tokens not destroyed on logout
- Difference Between Filter and Action Hooks?
- Which hook should be used to add an action containing a redirect?
- add_action hook for completely new post?
- WordPress and PHP Sessions – Security and Performance
- WordPress Hook for user register
- Explanation of the “posts_join” and “posts_fields” filter hooks?
- How do you use the plugin boilerplate loader class to hook actions and filters?
- What’s the earliest point I can get the queried object ID?
- Why does do_action pass a blank string as the first parameter if no $arg is set?
- Call activation hook multiple times
- What’s the difference between hooks, filters and actions? [duplicate]
- Two-step login process – Is it possible?
- How to check if certain plugin exists and in expected version
- Plugin development, hooks, generate content
- How can I hook into existing WordPress Bulk actions?
- Hook event for upload image in the menu
- Help with callback using do_action_ref_array
- Earliest WP Hook to Safely and Reliably Redirect
- Define a function outside a class and call the function using action or filter hook
- Is it possible to modify the media library admin screen?
- What function to hook for changes made in status and visibility of a post
- Synchronize Custom post type tags to WordPress default posts tags
- Order of Operation for these three hooks
- Modifying values with add_action to be sent to db
- Woocommerce – Hide a Column in Cart Table
- save_post hook not triggered in WP v3.6.1
- Hook into theme-switching later than `setup_theme`
- Is it possible to delay execution of shortcode output callback?
- Hook to get image filename when it is uploaded
- How to display a message about updates in the plugin list
- Why my database table not created on activation?
- How to delete an user including data from custom database tables
- Act on user meta updated, but only once
- Is there any way to allow a plugin to write over a previous version?
- Should action callbacks start with a verb?
- Execute Hook on the footer or header after activating a plugin
- Why is my javascript not invoked in my hooks except wp_head?
- Namespaced action and filter tags
- What filter should I use to insert a button inside on Media>Add New
- get_current_screen() return null
- how to add custom functionality after woocommerce place order button
- How to use a hook to override an update_post_meta call in a plugin?
- correct way to call javascript into hook function
- Prefixing plugin hooks (actions/filters) with a wrapper class or functions
- Send push when new post is published in a certain category
- WordPress custom taxonomy check box to dropdown
- Force HTTPS 301 redirect with hook
- captcha not working in my custom plugin
- use of do_action() without any functions attached
- What action hook can I use to add a JavaScript to a page post using a theme template that is not including get_header() nor get_footer()?
- How to get all queries’s results after they have executed?
- Plugin uninstall function is not working
- Remove an action by extending class and replacing it
- Odd map_meta_cap $args on post edit — sometimes integer, sometimes string
- Trying to get class to instantiate ONCE (or, “why do I keep punching myself in the head?”)
- How can I create a custom plugin that allows anonymous users to signup without registering?
- Bind a function with its own argument to show something dynamically after every content
- What’s the hook for filtering every texts of site?
- Hook add_attachment error
- Associate multiple email addresses with the same user account, so they can log in with either
- Update variable value via add_filter
- Custom filter not working
- hook update_option/updated_option empty $old_value and $value
- Configure WordPress to Generate Scheme-less Relative URLs
- How to find list of all functions bind to a particular hook from my plugin?
- Can I Hook Into the TinyMCE Insert/Edit Link Button to Use Shortlink For Post?
- Restrict certain actions to plugin-specific admin menu pages only
- How to enhance a self developed plugin by its own plugin architecture
- How to update global variables in plugin activation callback?
- `registration_errors` filter doesn’t seem to be called
- How to grab data after wp user search is complete
- Why does do_action pass a blank string as the first parameter if no $arg is set?
- Hook for validating and rejecting frontend image upload
- Does hooking into a plugin action / filter override the plugin’s function for that hook?
- Nested Hooks with do_action for performance reasons – safe/necessary?
- Problem in plugin debuging in wordpress
- WordPress Plugin Boilerplate – add actions and/or filters based on user’s role
- $_SESSION inside php function executed by AJAX
- OOP development and hooks
- remove different admin menu for specific users
- Add_action not calling callback function
- how to retrieve post_id under woocommerce_add_to_cart_validation hook?
- How and when would I implement some code which would take data from one part of the Db and put it in another?
- add_option_{$option} action hook not being called
- plugin modal/popup integration best practice
- Function not working on any file other than the main plugin file
- Multi hook deploiement
- woocommerce single product page hook not working
- How can I set a dynamic value for post_updated_messages based on return value of post_updated?
- Sessions in plugin development?
- What is the use of wp_schedule_event hook?
- Get user logged in status from within a plugin. $current_user not defined
- Create a Custom Login System in WordPress [closed]
- Insert plugin html content to a specific spot in the frontpage
- Send Webhook when post-status is publish or trash
- Using “add_image_size” to register custom image sizes inside plugins not working
- get_term_by() returning null on plugin
- Ninja Forms: Front-End Forms, Post ID?
- Execute callback after REST API request completes + Response is sent