fix: add check if product before gating content#3850
Conversation
|
@dkoo I'd love to get your feedback on the change to |
| public static function wc_memberships_notice_html( $notice, $message_body, $message_code, $message_args ) { | ||
| // If the gate is not available, don't mess with the notice. | ||
| if ( ! self::has_gate() ) { | ||
| if ( ! self::has_gate() || is_product() ) { |
There was a problem hiding this comment.
Nit: normally, the membership notice would not be displayed on product pages – only if the plan has a discount. A comment here about this quirkiness might be worthwhile, so the change is not deleted in the future due to purported redundancy.
There was a problem hiding this comment.
Ah good call -- thanks @adekbadek! Comments have been added.
|
Thanks for the review, @adekbadek! |
|
Hey @laurelfulford, good job getting this PR merged! 🎉 Now, the Please check if this PR needs to be included in the "Upcoming Changes" and "Release Notes" doc. If it doesn't, simply remove the label. If it does, please add an entry to our shared document, with screenshots and testing instructions if applicable, then remove the label. Thank you! ❤️ |
# [6.2.0-alpha.4](v6.2.0-alpha.3...v6.2.0-alpha.4) (2025-03-26) ### Bug Fixes * add check if product before gating content ([#3850](#3850)) ([b9e385d](b9e385d)) ### Features * add canonical url to lite site single posts ([#3865](#3865)) ([471ad81](471ad81)) * add custom check for media visibility ([#3823](#3823)) ([c1d81dc](c1d81dc)) * **correction:** Add Priority setting & refactor Block ([#3844](#3844)) ([9232750](9232750)) * **corrections-modal:** fix modal action buttons & state handling ([#3852](#3852)) ([220d5d6](220d5d6)) * **corrections-modal:** Improve Corrections Modal UX ([#3835](#3835)) ([afc9844](afc9844)) * information architecture ([#3857](#3857)) ([6fb5951](6fb5951)) * update custom bylines data structure ([#3863](#3863)) ([9b66c1f](9b66c1f))
|
🎉 This PR is included in version 6.2.0-alpha.4 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
* feat(my-account): disable WC password nag * feat(woo-member-commenting): optional module for member commenting (#3783) * feat(woo-member-commenting): optional module for member commenting * feat(woo-comments): use a constant array for settings * Remove punctuation Co-authored-by: Derrick Koo <dkoo@users.noreply.github.com> --------- Co-authored-by: Derrick Koo <dkoo@users.noreply.github.com> * fix: update paths to share button, social CSS in Perfmatters (#3810) * feat(media): enable setting a default image for 404 images (#3811) * fix(ga): check if post is not null before reading properties (#3817) * feat(rss-feed): add feed enhancements for republication tracker; Atom feed URL (#3801) * feat: add Lite sites feature (#3807) * feat: add Lite sites feature * feat: add lite site settings page * feat(lite-site): update style * fix: a few tweaks * fix: i18n * fix: option name * feat: add hook to allow styles customizations * fix: a few tweaks to the UI * feat: i18n for strings --------- Co-authored-by: Thomas Guillot <thomas@automattic.com> * Fix: Guest Contributors Role Init for CLI and PHPUnit (#3828) * fix: guest contributors role init for CLI (non-admin) * fix: guest contributors role init: move line * fix: guest contributors role init: phpcs cleanup * Revert "refactor(corrections): remove corrections feature flag (#3797)" (#3825) This reverts commit 7776957. * feat: enable email change for newspack users (#3824) * feat: enable email change for newspack users * fix: check ff for non-a12s * test: update JS tests (#3818) * deps: update testing-library * refator: prevent react warnings * test: fix test failing after testing-library update * feat(corrections-location): integrate Correction location logic (#3829) * refactor(corrections): remove customizer settings for corrections location * feat(corrections): add location metadata to corrections and update modal * feat(corrections): separate corrections by location and update markup generation * fix(tests): update correction tests * refactor(corrections): simplify location check * feat: update button label * fix: clear empty space * docs: update docs * refactor: remove unused corrections active meta key * feat: remove shortcode * refactor: remove obsolete corrections shortcode tests --------- Co-authored-by: Leo Germani <leogermani@automattic.com> * fix(modal-checkout): endpoint to refresh newsletter lists via REST (#3841) This PR fixes an issue where the newsletters modal was incorrectly showing all premium newsletters. We fix this by refreshing the newsletters lists post checkout. * test: fix corrections test * fix(reader-revenue): fatal when using woocommerce-paypal-payments@3.0.0 (#3848) * feat(memberships): status reevaluation (#3845) * feat(memberships): status reevaluation * chore: fix linting * chore(release): 6.2.0-alpha.1 [skip ci] # [6.2.0-alpha.1](v6.1.1...v6.2.0-alpha.1) (2025-03-20) ### Bug Fixes * **ga:** check if post is not null before reading properties ([#3817](#3817)) ([9dfa47a](9dfa47a)) * **modal-checkout:** endpoint to refresh newsletter lists via REST ([#3841](#3841)) ([79ea458](79ea458)) * **reader-revenue:** fatal when using woocommerce-paypal-payments@3.0.0 ([#3848](#3848)) ([1d73e17](1d73e17)) * update paths to share button, social CSS in Perfmatters ([#3810](#3810)) ([eb2ca7e](eb2ca7e)) ### Features * add Lite sites feature ([#3807](#3807)) ([cbd3e61](cbd3e61)) * **corrections-location:** integrate Correction location logic ([#3829](#3829)) ([6a7cd45](6a7cd45)) * enable email change for newspack users ([#3824](#3824)) ([1bfb458](1bfb458)) * **media:** enable setting a default image for 404 images ([#3811](#3811)) ([465928e](465928e)) * **memberships:** status reevaluation ([#3845](#3845)) ([ba4bea9](ba4bea9)) * **my-account:** disable WC password nag ([a22e756](a22e756)) * **rss-feed:** add feed enhancements for republication tracker; Atom feed URL ([#3801](#3801)) ([719983f](719983f)) * **woo-member-commenting:** optional module for member commenting ([#3783](#3783)) ([262f8bf](262f8bf)) ### Reverts * Revert "refactor(corrections): remove corrections feature flag (#3797)" (#3825) ([f5f6a5c](f5f6a5c)), closes [#3797](#3797) [#3825](#3825) * feat: add custom check for media visibility (#3823) * feat(corrections-modal): Improve Corrections Modal UX (#3835) * feat(corrections-modal): enhance corrections modal UX with notices and card layout * feat(corrections-modal): replace success notice with snackbar * refactor(corrections-modal): replaced contained notice with global notice * feat(corrections-modal): reorganise panels * feat(corrections-modal): enforce correction saving --------- Co-authored-by: Thomas Guillot <thomas@automattic.com> * feat(corrections-modal): fix modal action buttons & state handling (#3852) * feat(correction): Add Priority setting & refactor Block (#3844) * feat(corrections): update correction box to have location settings * feat(corrections-blocks): add variations for top and bottom correction box * feat(correction-box): change default location to 'all' in block attributes * feat(correction-box): upgrade variations and update icons * refactor(corrections): change location meta to priority and update related logic * refactor(correction-box): rename location setting to priority & update its logic & remove variations * refactor(corrections-modal): rename location to priority and update related logic * docs: update docs --------- Co-authored-by: Leo Germani <leogermani@automattic.com> * chore(release): 6.2.0-alpha.2 [skip ci] # [6.2.0-alpha.2](v6.2.0-alpha.1...v6.2.0-alpha.2) (2025-03-25) ### Bug Fixes * **reader-revenue:** fatal when using woocommerce-paypal-payments@3.0.0 ([#3848](#3848)) ([a3f6d6a](a3f6d6a)) * **woocommerce-email:** fix the subscription cancellation email ([fc1cc8c](fc1cc8c)) * fix: add check if product before gating content (#3850) * chore(release): 6.2.0-alpha.3 [skip ci] # [6.2.0-alpha.3](v6.2.0-alpha.2...v6.2.0-alpha.3) (2025-03-26) ### Bug Fixes * **esp-sync:** account for wp errors in email change sync ([#3860](#3860)) ([d5d576d](d5d576d)) * feat: update custom bylines data structure (#3863) * feat: information architecture (#3857) Co-authored-by: Jared Rethman <jaredrethman@gmail.com> Co-authored-by: Ron Chambers <116242607+ronchambers@users.noreply.github.com> Co-authored-by: Derrick Koo <dkoo@users.noreply.github.com> Co-authored-by: Rasmy Nguyen <raz@automattic.com> Co-authored-by: Thomas Guillot <thomasguillot@users.noreply.github.com> Co-authored-by: Laurel <laurel.fulford@automattic.com> * feat: add canonical url to lite site single posts (#3865) * chore(release): 6.2.0-alpha.4 [skip ci] # [6.2.0-alpha.4](v6.2.0-alpha.3...v6.2.0-alpha.4) (2025-03-26) ### Bug Fixes * add check if product before gating content ([#3850](#3850)) ([b9e385d](b9e385d)) ### Features * add canonical url to lite site single posts ([#3865](#3865)) ([471ad81](471ad81)) * add custom check for media visibility ([#3823](#3823)) ([c1d81dc](c1d81dc)) * **correction:** Add Priority setting & refactor Block ([#3844](#3844)) ([9232750](9232750)) * **corrections-modal:** fix modal action buttons & state handling ([#3852](#3852)) ([220d5d6](220d5d6)) * **corrections-modal:** Improve Corrections Modal UX ([#3835](#3835)) ([afc9844](afc9844)) * information architecture ([#3857](#3857)) ([6fb5951](6fb5951)) * update custom bylines data structure ([#3863](#3863)) ([9b66c1f](9b66c1f)) * fix(ia): render all emails on reset (#3867) This fixes an issue where resetting an email template in Newspack > Settings > Emails would only render Woo templates on success. * chore(release): 6.2.0-alpha.5 [skip ci] # [6.2.0-alpha.5](v6.2.0-alpha.4...v6.2.0-alpha.5) (2025-03-27) ### Bug Fixes * **ia:** render all emails on reset ([#3867](#3867)) ([519890f](519890f)) * fix(image-404-handling): handle 404 from other sites * chore(release): 6.2.0-alpha.6 [skip ci] # [6.2.0-alpha.6](v6.2.0-alpha.5...v6.2.0-alpha.6) (2025-03-31) ### Bug Fixes * **image-404-handling:** handle 404 from other sites ([51998b8](51998b8)) * test: fix unit tests based on dates relative to "now" (#3875) * fix: handle missing Mailchimp API key in auth status (#3873) * fix: remove Mailchimp for WooCommerce from wizard (#3876) * chore(release): 6.2.0-alpha.7 [skip ci] # [6.2.0-alpha.7](v6.2.0-alpha.6...v6.2.0-alpha.7) (2025-03-31) ### Bug Fixes * handle missing Mailchimp API key in auth status ([#3873](#3873)) ([81a6e51](81a6e51)) * remove Mailchimp for WooCommerce from wizard ([#3876](#3876)) ([4353a98](4353a98)) * fix(notices): fix PHP notice (#3872) --------- Co-authored-by: matticbot <sysops+ghmatticbot@automattic.com> Co-authored-by: Adam Cassis <adam.cassis@automattic.com> Co-authored-by: Camilla Krag Jensen <naxoc@users.noreply.github.com> Co-authored-by: Laurel <laurel.fulford@automattic.com> Co-authored-by: Adam Cassis <adam@adamcassis.com> Co-authored-by: Eddie Carrasco <eddies.code.shop@gmail.com> Co-authored-by: Takshil Kunadia <71006004+Takshil-Kunadia@users.noreply.github.com> Co-authored-by: leogermani <leogermani@automattic.com> Co-authored-by: Thomas Guillot <thomas@automattic.com> Co-authored-by: Ron Chambers <116242607+ronchambers@users.noreply.github.com> Co-authored-by: Rasmy Nguyen <raz@automattic.com> Co-authored-by: matticbot <semantic-release-bot@martynus.net> Co-authored-by: Miguel Peixe <miguel.peixe@automattic.com> Co-authored-by: Jared Rethman <jaredrethman@gmail.com> Co-authored-by: Thomas Guillot <thomasguillot@users.noreply.github.com>
# [6.2.0](v6.1.3...v6.2.0) (2025-03-31) ### Bug Fixes * add check if product before gating content ([#3850](#3850)) ([b9e385d](b9e385d)) * **ga:** check if post is not null before reading properties ([#3817](#3817)) ([9dfa47a](9dfa47a)) * handle missing Mailchimp API key in auth status ([#3873](#3873)) ([81a6e51](81a6e51)) * **ia:** render all emails on reset ([#3867](#3867)) ([519890f](519890f)) * **image-404-handling:** handle 404 from other sites ([51998b8](51998b8)) * **modal-checkout:** endpoint to refresh newsletter lists via REST ([#3841](#3841)) ([79ea458](79ea458)) * **notices:** fix PHP notice ([#3872](#3872)) ([9cda1ca](9cda1ca)) * **reader-revenue:** fatal when using woocommerce-paypal-payments@3.0.0 ([#3848](#3848)) ([1d73e17](1d73e17)) * remove Mailchimp for WooCommerce from wizard ([#3876](#3876)) ([4353a98](4353a98)) * update paths to share button, social CSS in Perfmatters ([#3810](#3810)) ([eb2ca7e](eb2ca7e)) ### Features * add canonical url to lite site single posts ([#3865](#3865)) ([471ad81](471ad81)) * add custom check for media visibility ([#3823](#3823)) ([c1d81dc](c1d81dc)) * add Lite sites feature ([#3807](#3807)) ([cbd3e61](cbd3e61)) * **correction:** Add Priority setting & refactor Block ([#3844](#3844)) ([9232750](9232750)) * **corrections-location:** integrate Correction location logic ([#3829](#3829)) ([6a7cd45](6a7cd45)) * **corrections-modal:** fix modal action buttons & state handling ([#3852](#3852)) ([220d5d6](220d5d6)) * **corrections-modal:** Improve Corrections Modal UX ([#3835](#3835)) ([afc9844](afc9844)) * enable email change for newspack users ([#3824](#3824)) ([1bfb458](1bfb458)) * information architecture ([#3857](#3857)) ([6fb5951](6fb5951)) * **media:** enable setting a default image for 404 images ([#3811](#3811)) ([465928e](465928e)) * **memberships:** status reevaluation ([#3845](#3845)) ([ba4bea9](ba4bea9)) * **my-account:** disable WC password nag ([a22e756](a22e756)) * **rss-feed:** add feed enhancements for republication tracker; Atom feed URL ([#3801](#3801)) ([719983f](719983f)) * update custom bylines data structure ([#3863](#3863)) ([9b66c1f](9b66c1f)) * **woo-member-commenting:** optional module for member commenting ([#3783](#3783)) ([262f8bf](262f8bf)) ### Reverts * Revert "refactor(corrections): remove corrections feature flag (#3797)" (#3825) ([f5f6a5c](f5f6a5c)), closes [#3797](#3797) [#3825](#3825)
All Submissions:
Changes proposed in this Pull Request:
This PR makes sure that products that are included in memberships -- either as limited to members or that have discounts limited to members -- do not get a content gateway.
It also overrides
user_has_cap()for products; this function was causing all restricted products to return the messageThis product is part of your membership, but not yet! It will become available on {date}., the message forproduct_access_delayed_message[when a member will get access to a product on a certain date], instead of the one tailored to what's actually happening (like a product being fully restricted to a membership).Note: for expediency, you can test Automattic/newspack-theme#2465 at the same time as this one -- it also makes sure the correct membership messaging doesn't look weird!
See: https://app.asana.com/0/1200550061930446/1209731811855442/f
How to test the changes in this Pull Request:
Set up two products, and make sure to populate the Product Description and Product Short Description. This just makes it easier to see the full issue.
Set up a Woo Membership Plan.
Under 'Restrict Content', restrict all posts.
Under 'Restrict Products', restrict the purchase of at least one product to members only.
Under 'Purchasing Discounts', discount at least one specific product. Make sure to set a discount amount, and check the 'Active' checkbox at the end (no comment about how long it took me to figure this out).
Under Newspack > Engagement > Show Advanced Settings, enable and set up the content gate for your membership.
In an incognito window, click around posts on your site and confirm that you get the membership gateway.
Go to /shop and navigate to view the two products restricted by your membership:
user_has_cap()function doesn't cause issues.Other information: