• Resolved tccand

    (@tccand)


    Hello,

    From my understanding the compatibility mode should be enabled if the order was a post instead of a page in the past.

    But I’ve found a case where one of my clients have “pages” as orders with this option enabled (high performance order storage + Enable compatibility mode)

    Should “Enable compatibility mode” be enabled if the orders are already “pages” instead of posts?

    When these 2 settings are enabled on a page order, the update_post_meta function no longer works how it should.

    This is how to reproduce this error:
    Set a post meta property during checkout.
    (the post meta is being set correctly, get_post_meta will display the property)
    In order admin check again for this post meta. Now it no longer exists.

    It seems to be deleted at some point.

    Since more users will inevitably set these setting like this in the future, is it correct to just tell them to disable the “Enable compatibility” mode?

    Thank you! Please let me know if you need any more information from me.


Viewing 4 replies - 1 through 4 (of 4 total)
  • Plugin Support Shameem R. a11n

    (@shameemreza)

    Hi @tccand

    The “Enable compatibility mode” is generally used when you’re transitioning from an older version of WooCommerce, where orders are stored as posts. If your orders are already being stored as pages, there is typically no need to enable this setting.

    However, it’s unusual that enabling this option along with the high performance order storage is causing the update_post_meta function to behave abnormally. This might be an issue specific to your client’s setup or could potentially be a bug.

    As a workaround, you can advise your clients to disable the “Enable compatibility mode” if they’re experiencing this issue. But, we’d like to investigate this further to understand the root cause.

    Could you please share a copy of the following:

    • System Status Report: Navigate to WooCommerce → Status. Select Get System Report and then Download for Support.
    • Fatal Error log: Share a copy of any fatal error log found under WooCommerce → Status → Logs.

    You could copy and paste your reply or share it via Mozilla Community Pastebin and share the link here. This will help us investigate further and provide you with a more accurate solution.

    Looking forward to helping you.

    Thread Starter tccand

    (@tccand)

    I’ve tested this on a fresh install.
    There are no errors in the log files.

    ` WordPress Environment
    
    WordPress address (URL): https://newoobill.lambda.brunomag.ro
    Site address (URL): https://newoobill.lambda.brunomag.ro
    WC Version: 8.4.0
    REST API Version: ? 8.4.0
    WC Blocks Version: ? 11.6.2
    Action Scheduler Version: ? 3.7.0
    Log Directory Writable: ?
    WP Version: 6.4.2
    WP Multisite: –
    WP Memory Limit: 256 MB
    WP Debug Mode: –
    WP Cron: ?
    Language: en_US
    External object cache: – Server Environment
    
    Server Info: Apache
    PHP Version: 8.1.18
    PHP Post Max Size: 8 MB
    PHP Time Limit: 30
    PHP Max Input Vars: 1000
    cURL Version: 7.81.0
    OpenSSL/3.0.2
    
    SUHOSIN Installed: –
    MySQL Version: 10.6.12-MariaDB-0ubuntu0.22.04.1
    Max Upload Size: 2 MB
    Default Timezone is UTC: ?
    fsockopen/cURL: ?
    SoapClient: ?
    DOMDocument: ?
    GZip: ?
    Multibyte String: ?
    Remote Post: ?
    Remote Get: ? Database
    
    WC Database Version: 8.4.0
    WC Database Prefix: wp_
    Total Database Size: 5.28MB
    Database Data Size: 3.58MB
    Database Index Size: 1.70MB
    wp_woocommerce_sessions: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    wp_woocommerce_api_keys: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    wp_woocommerce_attribute_taxonomies: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    wp_woocommerce_downloadable_product_permissions: Data: 0.02MB + Index: 0.06MB + Engine InnoDB
    wp_woocommerce_order_items: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    wp_woocommerce_order_itemmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    wp_woocommerce_tax_rates: Data: 0.02MB + Index: 0.06MB + Engine InnoDB
    wp_woocommerce_tax_rate_locations: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    wp_woocommerce_shipping_zones: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
    wp_woocommerce_shipping_zone_locations: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    wp_woocommerce_shipping_zone_methods: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
    wp_woocommerce_payment_tokens: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    wp_woocommerce_payment_tokenmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    wp_woocommerce_log: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    wp_actionscheduler_actions: Data: 0.02MB + Index: 0.11MB + Engine InnoDB
    wp_actionscheduler_claims: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    wp_actionscheduler_groups: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    wp_actionscheduler_logs: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    wp_commentmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    wp_comments: Data: 0.02MB + Index: 0.09MB + Engine InnoDB
    wp_links: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    wp_options: Data: 2.48MB + Index: 0.06MB + Engine InnoDB
    wp_postmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    wp_posts: Data: 0.06MB + Index: 0.06MB + Engine InnoDB
    wp_termmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    wp_terms: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    wp_term_relationships: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    wp_term_taxonomy: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    wp_usermeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    wp_users: Data: 0.02MB + Index: 0.05MB + Engine InnoDB
    wp_wc_admin_notes: Data: 0.06MB + Index: 0.00MB + Engine InnoDB
    wp_wc_admin_note_actions: Data: 0.06MB + Index: 0.02MB + Engine InnoDB
    wp_wc_category_lookup: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
    wp_wc_customer_lookup: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    wp_wc_download_log: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    wp_wc_orders: Data: 0.02MB + Index: 0.11MB + Engine InnoDB
    wp_wc_orders_meta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    wp_wc_order_addresses: Data: 0.02MB + Index: 0.06MB + Engine InnoDB
    wp_wc_order_coupon_lookup: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    wp_wc_order_operational_data: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    wp_wc_order_product_lookup: Data: 0.02MB + Index: 0.06MB + Engine InnoDB
    wp_wc_order_stats: Data: 0.02MB + Index: 0.05MB + Engine InnoDB
    wp_wc_order_tax_lookup: Data: 0.02MB + Index: 0.03MB + Engine InnoDB
    wp_wc_product_attributes_lookup: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    wp_wc_product_download_directories: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    wp_wc_product_meta_lookup: Data: 0.02MB + Index: 0.09MB + Engine InnoDB
    wp_wc_rate_limits: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    wp_wc_reserved_stock: Data: 0.02MB + Index: 0.00MB + Engine InnoDB
    wp_wc_tax_rate_classes: Data: 0.02MB + Index: 0.02MB + Engine InnoDB
    wp_wc_webhooks: Data: 0.02MB + Index: 0.02MB + Engine InnoDB Post Type Counts
    
    attachment: 1
    page: 7
    post: 2
    product: 1
    revision: 1
    shop_order_placehold: 3
    wp_global_styles: 1
    wp_navigation: 1
    wp_template: 2 Security
    
    Secure connection (HTTPS): ?
    Hide errors from visitors: ? Active Plugins (2)
    
    SmartBill Facturare si Gestiune: by smarbill.ro – 3.1.7
    WooCommerce: by Automattic – 8.4.0 Inactive Plugins (2)
    
    Akismet Anti-spam: Spam Protection: by Automattic - Anti-spam Team – 5.3
    Hello Dolly: by Matt Mullenweg – 1.7.2 Settings
    
    API Enabled: –
    Force SSL: –
    Currency: RON (lei)
    Currency Position: right_space
    Thousand Separator: .
    Decimal Separator: ,
    Number of Decimals: 2
    Taxonomies: Product Types: external (external)
    grouped (grouped)
    simple (simple)
    variable (variable)
    
    Taxonomies: Product Visibility: exclude-from-catalog (exclude-from-catalog)
    exclude-from-search (exclude-from-search)
    featured (featured)
    outofstock (outofstock)
    rated-1 (rated-1)
    rated-2 (rated-2)
    rated-3 (rated-3)
    rated-4 (rated-4)
    rated-5 (rated-5)
    
    Connected to Woo.com: –
    Enforce Approved Product Download Directories: ?
    HPOS feature screen enabled: ?
    HPOS feature enabled: ?
    Order datastore: Automattic\WooCommerce\Internal\DataStores\Orders\OrdersTableDataStore
    HPOS data sync enabled: – WC Pages
    
    Shop base: #7 - /shop/
    Cart: #8 - /cart/
    Checkout: #9 - /checkout/
    My account: #10 - /my-account/
    Terms and conditions: ? Page not set Theme
    
    Name: Twenty Twenty-Four
    Version: 1.0
    Author URL: https://www.remarpro.com
    Child Theme: ? – If you are modifying WooCommerce on a parent theme that you did not build personally we recommend using a child theme. See: How to create a child theme
    WooCommerce Support: ? Not declared Templates
    
    Overrides: /home/newoobill/public_html/wp-content/plugins/woocommerce/packages/woocommerce-blocks/templates/notices/error.php
    /home/newoobill/public_html/wp-content/plugins/woocommerce/packages/woocommerce-blocks/templates/notices/notice.php
    /home/newoobill/public_html/wp-content/plugins/woocommerce/packages/woocommerce-blocks/templates/notices/success.php Admin
    
    Enabled Features: activity-panels
    analytics
    product-block-editor
    coupons
    core-profiler
    customer-effort-score-tracks
    import-products-task
    experimental-fashion-sample-products
    shipping-smart-defaults
    shipping-setting-tour
    homescreen
    marketing
    mobile-app-banner
    navigation
    onboarding
    onboarding-tasks
    product-variation-management
    product-virtual-downloadable
    remote-inbox-notifications
    remote-free-extensions
    payment-gateway-suggestions
    shipping-label-banner
    subscriptions
    store-alerts
    transient-notices
    woo-mobile-welcome
    wc-pay-promotion
    wc-pay-welcome-page
    
    Disabled Features: customize-store
    minified-js
    new-product-management-experience
    product-external-affiliate
    settings
    async-product-editor-category-field
    
    Daily Cron: ? Next scheduled: 2023-12-14 11:33:26 +00:00
    Options: ?
    Notes: 64
    Onboarding: skipped Action Scheduler
    
    Complete: 8
    Oldest: 2023-12-13 11:34:30 +0000
    Newest: 2023-12-13 11:41:07 +0000
    
    Failed: 2
    Oldest: 2023-12-13 11:37:09 +0000
    Newest: 2023-12-13 11:37:26 +0000
    
    Pending: 1
    Oldest: 2023-12-14 11:34:30 +0000
    Newest: 2023-12-14 11:34:30 +0000 Status report information
    
    Generated at: 2023-12-13 15:21:05 +00:00
    `
    • This reply was modified 1 year, 3 months ago by tccand.
    Saif

    (@babylon1999)

    Hello @tccand,

    From my understanding the compatibility mode should be enabled if the order was a post instead of a page in the past.

    I believe there might be a misunderstanding here. With HPOS, orders aren’t considered wp_posts or a WordPress Page, as they’re stored in a separate database table.

    Regarding your query about update_post_meta(), this behavior is expected. Most WordPress core APIs that interact with posts won’t work when HPOS is enabled.

    You can replace this with the $order object:

    $order->update_meta_data( $meta_key_1, $meta_value_1 );

    You can find more details about this in the High Performance Order Storage Upgrade Recipe Book.

    Hope this clarifies things!

    Thread Starter tccand

    (@tccand)

    That seems to solve the problem.
    Thank you!

Viewing 4 replies - 1 through 4 (of 4 total)
  • The topic ‘“update_post_meta” does not work when “Enable compatibility mode” is enabled’ is closed to new replies.