Okay
  Public Ticket #2862706
WPTables & Litespeed Cache
Closed

Comments

  • Steve Messere started the conversation

    This cache is causing issues with the AJAX calls to load the tables. Note the top table is a manual table and there is no option to load the table, it will call the AJAX to request JSON to load the table.

    It appears, when the table fails to load, that the AJAX returns a null result and the cache is likely at fault. https://www.litespeedtech.com/

    I've continued to make adjustments but I'm not confident that it will continue to work.

    It might be helpful to contact the plug-in and see if you can coordinate a tech note on the best settings to get the cache to work when using manual tables.

    - Steve

  •  2,507
    Aleksandar replied

    Hello Steve

    Thank you for your purchase.

    For me, all three tables load fine, but it would be good if you can simply disable caching on pages where wpDataTables are. The plugin does face some issues with caching plugins, and the only solution at this point is preventing caching for pages where our tables are.

    Kind Regards, 

    Aleksandar Vuković
    [email protected]

    Rate my support

    wpDataTables: FAQ | Facebook | Twitter | InstagramFront-end and back-end demo | Docs

    Amelia: FAQ | Facebook | Twitter | InstagramAmelia demo sites | Docs | Discord Community

    You can try wpDataTables add-ons before purchasing on these sandbox sites:

    Powerful Filters | Gravity Forms Integration for wpDataTables | Formidable Forms Integration for wpDataTables | Master-Detail Tables

  • Steve Messere replied

    Aleksandar,

    Thanks for the non-answer to my question. Yes, indeed we could turn off the cache on every page that has a table on this client’s site.

    I might equally suggest that you can make sure you support https://wordpress.org/plugins/litespeed-cache/ which has over 2 million active installations.

    Since I’m not just a client but a developer, here’s how you might avoid using the AJAX function to call for the manual tables and instead use the WordPress transient feature when saving the table. https://developer.wordpress.org/apis/handbook/transients/

    The issue here is that you are calling for the data on page load for manual tables using AJAX and there are conflicts with how this loads when using the Litespeed cache, again let me be clear the tables loaded from files like CSV/Excel don’t have this issue.

    We’ll work out the best combination for the client but it would be helpful if your company took this issue more seriously as a coding challenge to be solved. Instead, your proposed solution reflects no real effort on your part.

    Steve Messere
    Founder & CEO
    Revenue Spark, Inc.

  •  2,507
    Aleksandar replied

    Hi again Steve

    Thank you for your feedback!

    We're aware of the issue, and the whole plugin is scheduled to have the code refactored at some point in the future, where avoiding the usage of AJAX is also on the table. Our team is working their best to develop the plugin, fix existing bugs and troubleshoot ongoing issues, so a venture this vast has been put on hold for some time now.

    Once we get to it, I'm sure our developers will find a better way to handle server-side tables. You don't see this issue with tables linked to an existing data source (CSV, Excel, Google Spreadsheets, etc) because these tables fetch all the rows, output the entire table to the front-end all at once, and then split it into pages using JavaScript; all data processing (page switching, sorting, filtering) is done on the client’s computer by JavaScript, so no admin-ajax is being called.

    Every suggestion and ticket like this is forwarded to our developers, so they have an overview of the situation. I'll send them this ticket as well, hoping that the AJAX function will be avoided in the future.

    Thank you once again for your help!

    Kind Regards, 

    Aleksandar Vuković
    [email protected]

    Rate my support

    wpDataTables: FAQ | Facebook | Twitter | InstagramFront-end and back-end demo | Docs

    Amelia: FAQ | Facebook | Twitter | InstagramAmelia demo sites | Docs | Discord Community

    You can try wpDataTables add-ons before purchasing on these sandbox sites:

    Powerful Filters | Gravity Forms Integration for wpDataTables | Formidable Forms Integration for wpDataTables | Master-Detail Tables

  •  2,507
    Aleksandar replied

    Hi again Steve.

    Our developers confirmed that we are planning to enhance the back-end of the plugin in the future. For now, we have a workaround for working with Litespeed Cache:

    We do not use wp_create_nonce, but wp_nonce_field, but anyway you can forward the action in their hook.

    You need to go to file ..wp-content/plugins/wpdatatables/templates/frontend/table_main.inc.php and around line 21, you will find this:

    <?php wp_nonce_field('wdtFrontendEditTableNonce' . $this->getWpId(), 'wdtNonceFrontendEdit_' . $this->getWpId()); ?>

    Above that, add this:

    <?php do_action( 'litespeed_nonce', 'wdtFrontendEditTableNonce' . $this->getWpId() ); ?>

    If you're using Excel-like tables, then you also need to go to file ..wp-content/plugins/wpdatatables/templates/frontend/excel_table_main.inc.php and around line 20 you'll find this:

    <?php wp_nonce_field('wdtFrontendEditTableNonce' . $this->getWpId(), 'wdtNonceFrontendEdit_' . $this->getWpId()); ?>

    Above that line, add this:

    <?php do_action( 'litespeed_nonce', 'wdtFrontendEditTableNonce' . $this->getWpId() ); ?>

    That's how it's supposed to be done based on their instructions.

    Please let me know if this works, and we'll add the hook to wpDataTables.

    Kind Regards, 

    Aleksandar Vuković
    [email protected]

    Rate my support

    wpDataTables: FAQ | Facebook | Twitter | InstagramFront-end and back-end demo | Docs

    Amelia: FAQ | Facebook | Twitter | InstagramAmelia demo sites | Docs | Discord Community

    You can try wpDataTables add-ons before purchasing on these sandbox sites:

    Powerful Filters | Gravity Forms Integration for wpDataTables | Formidable Forms Integration for wpDataTables | Master-Detail Tables