Commit Graph

17 Commits

Author SHA1 Message Date
John Oleksowicz
314b1f3c27 Change method for detecting empty product pages
The previous method was relying on the idea that product pages would not
 trigger the `the_content` filter since they don't have to render the
 content. Testing revealed that this idea was unreliable.

In one instance WordPress was triggering `the_content` when attempting
to filter the excerpt, even though the excerpt was empty.

This changes the detection method to a much more direct inspection of
the post's content.

MAILPOET-5859
2024-03-08 12:27:06 +01:00
John Oleksowicz
0ab2be782d Show forms on empty product pages
The current logic for form rendering assumes that a single product page
will trigger the filter `the_content`. This is not always true. In cases
where the product has no description, WooCommerce does not render the
description tab at all, which is where that filter usually fires (in my
testing).

This change ensures that we still give these forms a chance to render on
 such pages.

MAILPOET-5859
2024-03-08 12:27:06 +01:00
John Oleksowicz
f3f33e5859 Don't automatically include homepage in all pages
MAILPOET-4897
2023-07-12 10:14:52 +02:00
John Oleksowicz
677ae370ed Handle special case for selected Posts page
MAILPOET-4897
2023-07-12 10:14:52 +02:00
John Oleksowicz
481f5585a0 Add form placement options for homepage, archives
MAILPOET-4897
2023-07-12 10:14:52 +02:00
Oluwaseun Olorunsola
0019ad110e Update DisplayFormInWPContent::display method type and add more tests
MAILPOET-4885
MAILPOET-4820
2023-01-25 13:15:08 +01:00
Oluwaseun Olorunsola
62325dc096 Fix multiple forms display on pages with Woocommerce [products] shortcode
MAILPOET-4885
2023-01-25 13:15:08 +01:00
John Oleksowicz
761f7c6537 Prevent issues if other plugins define WC function
It's possible that other plugins might define wc_get_page_id, so it's
more important to know that WC is installed/active than to know if the
function itself exists.

For good measure I'm including a cast to int even though the WC version
of the function always returns an integer. This is probably unnecessary
but it protects us from the possibility of the WC version of the
function returning something other than an integer in the future.

[MAILPOET-4834]
2022-11-30 11:03:40 +01:00
Jan Jakes
926620e8f8 Ignore strict types rule in all existing files that don't have it
[MAILPOET-2688]
2022-11-29 15:04:09 +01:00
Oluwaseun Olorunsola
b6e7e39fb0 Rename method and move wcGetPageId to Woo helper class
MAILPOET-4663
2022-11-01 14:58:47 +01:00
Oluwaseun Olorunsola
8c24d59f43 Add tests for form display on Woo Shop listing page
MAILPOET-4663
2022-11-01 14:58:47 +01:00
Oluwaseun Olorunsola
5ed0c3fb2d Allow form display on Woo Shop listing page
The WooCommerce Shop page is a special kind of page. It’s basically a post archive.

The Shop page is a placeholder for a post type archive for products. It may render differently than other pages in your install.
https://woocommerce.com/document/woocommerce-pages/#section-4

It doesn’t have any content and WooCommerce core team is also removing the the-content filter from the Shop listing page hence why we are unable to hook into the the-content filter we use for other parts of the codebase

MAILPOET-4663
2022-11-01 14:58:47 +01:00
John Oleksowicz
fc1f3e6dc2 Inline generateToken for clarity
The only thing Security::generateToken was providing was a default value
 for the $action, which created a pattern of using the same $action
 everywhere, which may not be the best way to go.

 Since it was essentially a wrapper for WP's built-in nonce functions,
 it seemed clearer to use those functions directly to be more explicit
 about how we're handling tokens.

[MAILPOET-2030]
2022-04-11 10:29:35 +02:00
Brezo Cordero
bfa9a98df6 Do not display form if logged in and registered to any segment.
[MAILPOET-3059]
2022-02-23 15:22:24 +01:00
Brezo Cordero
8c70069064 Add selection in form editor for cookie expiration time.
[MAILPOET-3059]
2022-02-23 15:22:24 +01:00
Brezo Cordero
250988163c Per form cookie and expiration date
Add expiration date and change popup_form_dismissed to per form cookie on public.js.

[MAILPOET-3059]
2022-02-23 15:22:24 +01:00
Jan Jakes
9f790efbf0 Move plugin files to a subfolder
[MAILPOET-3988]
2022-01-18 15:30:22 +01:00