Thanks to visit codestin.com
Credit goes to github.com

Skip to content

#37000 Set SameSite to Lax via a new setcookie() wrapper#12444

Open
johnbillion wants to merge 5 commits into
WordPress:trunkfrom
johnbillion:37000-samesite
Open

#37000 Set SameSite to Lax via a new setcookie() wrapper#12444
johnbillion wants to merge 5 commits into
WordPress:trunkfrom
johnbillion:37000-samesite

Conversation

@johnbillion

Copy link
Copy Markdown
Member

The default value for SameSite in Chromium-based browsers has been set to Lax since 2020. This breaks some less-common use cases such as iframing the site, but just as importantly, results in inconsistency across browsers because neither Firefox nor Safari do the same.

Since the minimum supported version of PHP is now > 7.3 we can switch to using the array signature for setcookie() options and specify a value for the SameSite flag.

In order to standardise setting SameSite to Lax in all browsers, facilitate being able to change the SameSite value (either to tighten it to Strict or loosen it to None), and to make everything more testable, this PR makes the following changes:

  • Adds a wp_set_cookie() wrapper function with filters for controlling the cookie options and whether cookies are sent. This increases the testability of functions that set cookies.
  • Adds a wp_unset_cookie() function as a convenience wrapper for unsetting cookies.
  • Explicitly sets the samesite option to Lax. I have not identified any cookie that's set by WordPress that would benefit from a SameSite value of Strict, and none that need downgrading to None.

Supporting info

Drupal, Symfony, Laravel, Django, RoR, ASP.NET, Magento, and many other frameworks default to explicitly setting SameSite to Lax rather than relying on an implied default in browsers.

Trac ticket: https://core.trac.wordpress.org/ticket/37000

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

Core Committers: Use this line as a base for the props when committing in SVN:

Props johnbillion.

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@johnbillion johnbillion mentioned this pull request Jul 7, 2026
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown

Test using WordPress Playground

The changes in this pull request can previewed and tested using a WordPress Playground instance.

WordPress Playground is an experimental project that creates a full WordPress instance entirely within the browser.

Some things to be aware of

  • All changes will be lost when closing a tab with a Playground instance.
  • All changes will be lost when refreshing the page.
  • A fresh instance is created each time the link below is clicked.
  • Every time this pull request is updated, a new ZIP file containing all changes is created. If changes are not reflected in the Playground instance,
    it's possible that the most recent build failed, or has not completed. Check the list of workflow runs to be sure.

For more details about these limitations and more, check out the Limitations page in the WordPress Playground documentation.

Test this pull request with WordPress Playground.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants