Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WordPress 6.7 compatibility testing #1083

Closed
1 task
layoutd opened this issue Nov 6, 2024 · 1 comment
Closed
1 task

WordPress 6.7 compatibility testing #1083

layoutd opened this issue Nov 6, 2024 · 1 comment
Assignees

Comments

@layoutd
Copy link
Collaborator

layoutd commented Nov 6, 2024

In this issue, we are testing compatibility with WordPress 6.7. The following checklist is retrieved from https://github.com/woocommerce/pinterest-for-woocommerce/wiki/Smoke-Tests.

Test with:

  • PHP: 8.4.0alpha4
  • WordPress 6.7-RC2
  • WooCommerce: 9.3.3
  • Theme: Twenty Twenty Five
  • Plugin version: 1.4.11

Prerequisites:

  1. Configure WooCommerce with products, and a valid payment processor (dev Stripe, or cash on delivery option in WC Settings > Payments) so that you can complete checkout.
  2. Business Pinterest Account already verified on Pinterest.

0.0 WooCommerce activation Check

  • Install and activate the plugin without WooCommerce activated.

1.0 Onboarding flow

  1. After installing the Pinterest plugin

    • Install the plugin but keep it deactivated (first time)- check front-end / back-end /logs has no fatal error.
    • Activate the plugin for the first time - check front-end/back-end/logs has no fatal error.
  2. Start the onboarding flow by going to:

    • Marketing > Pinterest
    • WooCommerce > Home > Things to do next
    • For new WooCommerce navigation. (need to install “WooCommerce Admin”. Then go to “WooCommerce > Settings > Advanced Tab > Features” and check the “Navigation” option.)
    • WooCommerce > Extensions > Pinterest
  3. And Click on “Get Started

    • Step 1: You can Connect your existing Pinterest Business Account or Create a new one. Some special cases:

      1. Personal Pinterest account: this should guide you to Create a Business Account or Convert your Personal Account to a Business account.
      2. Personal Account linked with the Business account: should connect to the Business account linked to the Personal account.
    • Step 2: “Verify your domain to claim your website” the domain should be verified.

      1. If the user already claims the Domain, just needs to continue.
      2. If the Domain is not claimed by the user, the user needs to click on “Verify Domain”
      3. If another user claims Domain, an error message should be displayed, and the user can’t go forward.
      4. Pinterest will support Domain with sub_path (1.0.9 or later version) (Example: https://<url>/test )
    • Step 3:Track conversions with the Pinterest tag”. Users should select or create the advertiser.

      1. If a Merchant does not have an Advertiser, the same flow should guide you to create one by accepting the terms and conditions.
      2. If a Merchant has 1 Advertiser, just need to click on “Complete Setup
      3. If a Merchant has more than one Advertiser, select one and “Complete Setup
    • Step 4: After Completing the Setup, this should redirect you to the “Settings” page of the Pinterest plugin.

2.0 Product page (WooCommerce products)

The Pinterest plugin will add 2 fields to the products page for simple products.

image

For variable products, the Pinterest tab will be added to the main product (parent) containing the Google category.

Product conditions will be added to each product variation.

image

3.0 Settings page

Options:

  1. Product Sync > Enable Product Sync - Enabled by default
  2. Tracking > Track conversions - Enabled by default
  3. Tracking > Enhanced Match support - Enabled by default (Field will be disabled if “Tracking conversions” is disabled)
  4. Rich Pins > Add Rich Pins for Products - Enabled by default
  5. Rich Pins > Add Rich Pins for Posts - Enabled by default
  6. Save to Pinterest > Save to Pinterest - Enabled by default
  7. Debug Logging > Enable Debug Logging. Debug log should be added on WooCommerce > Status > Logs with name:
    1. Pinterest-for-woocommerce-YYYY-MM-DD-.....log
    2. Pinterest-for-woocommerce-product-sync-YYYY-MM-DD-.....log
  8. Plugin Data > Erase Plugin Data. If the User wants to uninstall the plugin and this option is Enabled, all data related to the plugin will be deleted.

4.0 Connection page

  1. Should show the Pinterest user_id that is connected to the Pinterest plugin
  2. The merchant should be able to Disconnect accounts by clicking on “Disconnect
    1. It will delete all feeds on the Pinterest account
  3. Should show the domain that is verified
  4. It should show the Advertiser and Tracking tag selected on the onboarding flow. If a Merchant has more than one, it can be updated.
    2. If Merchant has more than one advertiser it should be possible to change it

5.0 Products Catalog page

  1. Should be displayed by default when the user navigates to:
    1. Marketing > Pinterest
    2. WooCommerce > Extensions > Pinterest (New Navigation)
  2. Should show the status of the Products synced with the Pinterest Business account. Pinterest feed/sync needs to be approved by Pinterest.
  3. XML feed should be created on /wp-content/uploads/pinterest-for-woocommerce-xxxxxx.xml
  4. The Pinterest feed should be updated every 10 minutes (hook pinterest-for-woocommerce-handle-sync on Scheduled Actions can be run manually)
  5. If sync is approved, it should be synched every 24hs. (On the Pinterest Business account board: Ads > Catalogs should show the status)
  6. Product sync can be disabled on the Settings page (Product Sync > Enable Product Sync option)
  7. Feed will be deleted from the site (not from the Pinterest account) when:
    3. Disable the option on the Settings page
    4. Deactivate plugin
  8. Feeds will be deleted from the Pinterest account when the user disconnects from the account on the Connection tab.

Example of an item:

    <rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
    <channel>
    <item>
    <g:id>36</g:id>
    <title>
    <![CDATA[ Hoodie ]]>
    </title>
    <description>
    <![CDATA[ Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. ]]>
    </description>
    <g:product_type>Hoodies</g:product_type>
    <link>
    <![CDATA[ https://<<URLsite>>/product/hoodie/ ]]>
    </link>
    <g:image_link>
    <![CDATA[ https://<<URLsite>>/wp-content/uploads/2021/11/hoodie.jpg ]]>
    </g:image_link>
    <g:availability>in stock</g:availability>
    <g:price>45USD</g:price>
    <sale_price>42USD</sale_price>
    <g:mpn/>
    </item>
    </channel>
    </rss>

Note:

  1. The description field will be filled with “Short description” if the description is not present. Variable products need to have the Description of each variable so they have it on the feed.
  2. List of products that should not be present on the feed (XML)
    1. Grouped Products
    2. Hidden (1.0.9 or later) /private/draft products
    3. Products on trash
    4. Out-of-stock products will be excluded if Woo settings is checked. https://<url>/wp-admin/admin.php?page=wc-settings&tab=products&section=inventory
      image
    5. Parent products of the variable product (only should be present the variables) (1.0.9 or later)
    6. Free or 0-price products
    7. Subscription products
    8. Since version 1.2.9 the only supported products by default are simple and variations, which can be extended by the filter pinterest_for_woocommerce_included_product_types. An additional filter pinterest_for_woocommerce_excluded_product_types can be used to force the exclusion of some kind of product types from the feed.

Google category and Condition fields

The Pinterest plugin will add fields on the Product page edition. These fields are not required by Pinterest but if they are not filled they will show a Warning message on Catalog Tab (Alert message)

image

6.0 Tracking Conversion

Should track User <> Site interaction with the Pinterest Business Account (on Pinterest Business board can be checked on “Ads > Conversions”)

  • Tracking conversion can be disabled on the Settings page. (Enabled by default)

Examples:

  • Page Visit: Should send the event every time the user visits a page
    <script>pintrk( 'track', 'pagevisit', );</script>
    
  • View Category: This should send the event every time a user visits a category page.
    <script>pintrk( 'track', 'ViewCategory' , {"product_category":16,"category_name":"Accessories"},); </script>
    
  • Search: This should send the event every time a user searches for something on the page.
    <script>pintrk('track', 'search', {search_query: 'hoodie'},);</script>
    
  • Add to Cart: The event should be sent every time user adds product to the cart from Shop/Category/Product page
    <script>pintrk('track', 'AddToCart', {product_id: 10,order_quantity: 1,});</script>
    
  • Checkout: The event should be sent every time User places an order.
    <script>pintrk( 'track', 'checkout' , {"order_id":45,"value":"220.00","order_quantity":4,"currency":"USD","line_items":[{"product_id":3,"product_name":"Belt","product_price":"55","product_quantity":3,"product_category":["Accessories"]},{"product_id":4,"product_name":"Hoodie with Logo","product_price":"45","product_quantity":1,"product_category":["Hoodies"]}]});</script>
    

7.0 Enhanced Match support

Should add to the Tracking Conversion event a hashed email so can be matched on Pinterest

pintrk('load', '2613101893693', { em: '8302f4115fded8c3885dbc5cc115fe90' });
  • Enhanced Match can be enabled/disabled on the Settings page.

Enhanced Match should be sent when:

  • The user is logged in to the site
  • Cookies saved on the browser After placing the order (Guests users)

8.0 Rich Pins

Merchants can expose OpenGraph metadata for products and posts to enable Rich Pins.

Example for the product:

    <meta property="og:url" content="https://<<URLsite>>/product/beanie/">
    <meta property="og:site_name" content="Mass Grasshopper">
    <meta property="og:title" content="Beanie">
    <meta property="og:type" content="og:product">
    <meta property="og:image" content="https://<<URLsite>>/wp-content/uploads/2021/11/beanie.jpg">
    <meta property="product:price:currency" content="USD">
    <meta property="product:price:amount" content="18">
    <meta property="og:price:standard_amount" content="20">
    <meta property="og:description" content="Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.">
    <meta property="og:availability" content="instock">

Example for Posts:

    <meta property="og:url" content="https://<<URLsite>>/2021/11/08/hello-world/">
    <meta property="og:site_name" content="Mass Grasshopper">
    <meta property="og:type" content="article">
    <meta property="og:title" content="Hello world!">
    <meta property="og:description" content="Welcome to WordPress. This is your first post. Edit or delete it, then start writing!">
    <meta property="article:published_time" content="2021-11-08T11:12:15+00:00">
    <meta property="article:author" content="demo">

9.0 Save to Pinterest

Shoppers can save (pin) products to Pinterest from the product page and archive pages, e.g. shop page.

This option can be disabled on the Settings page. (Enabled by default)

Pre-release tests that we must do before release.

  • Install the plugin but keep it deactivated (first time)- check front-end/back-end/logs has no fatal error
  • Activate plugin for the first time - check front-end/back-end/logs has no fatal error
  • Update plugin on sites that plugin is deactivated - check front-end/back-end/logs has a no fatal error
  • Update plugin on sites that plugin is activated - check front-end/back-end/logs has no fatal error
@layoutd layoutd self-assigned this Nov 6, 2024
@layoutd
Copy link
Collaborator Author

layoutd commented Nov 6, 2024

✅ All tests OK. Created unrelated #1084

@layoutd layoutd closed this as completed Nov 6, 2024
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

No branches or pull requests

1 participant