Support » Plugin: GiveWP - Donation Plugin and Fundraising Platform » Database Error re. post_id in wp_give_formmeta

  • Resolved kallym

    (@kallym)


    Hi, I am getting a recurring error in the wp-admin/ error_log. It seems to be occurring once every second and always starts out like this:

    [30-Jul-2018 15:16:18 America/Los_Angeles] WordPress database error Unknown column ‘post_id’ in ‘field list’ for query SELECT wp_posts.ID FROM wp_posts INNER JOIN wp_give_formmeta ON ( wp_posts.ID = wp_give_formmeta.form_id ) WHERE 1=1 AND (
    ( wp_give_formmeta.meta_key = ‘_give_goal_option’ AND wp_give_formmeta.meta_value = ‘enabled’ )
    ) AND wp_posts.post_type = ‘give_forms’ AND ((wp_posts.post_status = ‘publish’)) AND wp_posts.ID IN ( SELECT ID FROM wp_posts WHERE ID NOT IN ( SELECT post_id FROM wp_give_formmeta WHERE wp_give_formmeta.meta_key = ‘groups-groups_read_post’ ) UNION ALL SELECT post_id AS ID FROM wp_give_formmeta WHERE wp_give_formmeta.meta_key = ‘groups-groups_read_post’ AND
    etc. etc. etc. it’s very long!

    But, the unknown column appears in these two places that I have made bold. It’s correct, there is no column for ‘post_id’ in that table. There is a post_id column in the wp_postmeta table. And I can’t find anything in the plugin files that matches this SELECT statement. Do you know what might be going on here? I think it’s been happening for a couple of months. Thank You!!

Viewing 13 replies - 1 through 13 (of 13 total)
  • Plugin Contributor Ravinder Kumar

    (@ravinderk)

    @kallym On first look, it looks like a plugin conflict.
    We need your system information which will help to debug quickly.
    Can you share you system information which you will find here: Donations > Tools > System Info

    Hi, I asked our hosting provider to see if they saw anything unusual and they said it appears to be a conflict with the Groups plugin.

    I copied the System Info. Is there a way to get it to you or should I paste the non-private information here?

    Plugin Contributor Ravinder Kumar

    (@ravinderk)

    @kallym I think got what I need. I will test Give with https://wordpress.org/plugins/groups/ plugin and let you know if I will able to find a fix for you 🙂

    Plugin Contributor Ravinder Kumar

    (@ravinderk)

    @kallym I created a Github issue for this ticket: https://github.com/WordImpress/Give/issues/3538

    I will keep you posted about progress.

    Thank you! I heard back from Groups – https://wordpress.org/support/topic/continuous-database-errors/#post-10553223 – they had heard of a similar issue, but have no solution yet. They gave me a recommendation for what to do in the meanwhile, but it didn’t stop the errors in the error_log and it’s still growing rapidly.

    Hi @kallym,

    I have installed Give and Groups and tried to make a test donation. So far I am unable to reproduce the error. Can you kindly let us know the steps you followed just before the error occurred on your end? Or maybe provide with a screencast if possible?

    Hi,

    There is no apparent error on the site. I first noticed a problem when my backup plugin reported a large file at wp-admin/error_log. On Aug. 2 I disabled Give forms in the Groups settings. I just looked at the error_log and see that I am still getting several errors a minute, but they are smaller now and the file size is manageable. The error now says:

    [05-Aug-2018 05:28:38 America/Los_Angeles] WordPress database error Unknown column ‘post_id’ in ‘field list’ for query SELECT wp_posts.ID FROM wp_posts INNER JOIN wp_give_formmeta ON ( wp_posts.ID = wp_give_formmeta.form_id ) WHERE 1=1 AND (
    ( wp_give_formmeta.meta_key = ‘_give_goal_option’ AND wp_give_formmeta.meta_value = ‘enabled’ )
    ) AND wp_posts.post_type = ‘give_forms’ AND ((wp_posts.post_status = ‘publish’)) AND wp_posts.ID IN ( SELECT ID FROM wp_posts WHERE ID NOT IN ( SELECT post_id FROM wp_give_formmeta WHERE wp_give_formmeta.meta_key = ‘groups-groups_read_post’ ) UNION ALL SELECT post_id AS ID FROM wp_give_formmeta WHERE wp_give_formmeta.meta_key = ‘groups-groups_read_post’ AND wp_give_formmeta.meta_value IN (”) ) GROUP BY wp_posts.ID ORDER BY wp_posts.post_title ASC LIMIT 0, 30 made by do_action(‘admin_init’), WP_Hook->do_action, WP_Hook->apply_filters, Give_Shortcode_Generator->init, Give_Shortcode_Generator->get_fields, Give_Shortcode_Generator->generate_fields, Give_Shortcode_Generator->generate_post, get_posts, WP_Query->query, WP_Query->get_posts

    I just realized that after I disabled Give forms in the Groups settings the error (although I am still getting sever a minute in wp-admin/error_log) is much shorter now.
    It reads:
    [05-Aug-2018 05:28:38 America/Los_Angeles] WordPress database error Unknown column ‘post_id’ in ‘field list’ for query SELECT wp_posts.ID FROM wp_posts INNER JOIN wp_give_formmeta ON ( wp_posts.ID = wp_give_formmeta.form_id ) WHERE 1=1 AND (
    ( wp_give_formmeta.meta_key = ‘_give_goal_option’ AND wp_give_formmeta.meta_value = ‘enabled’ )
    ) AND wp_posts.post_type = ‘give_forms’ AND ((wp_posts.post_status = ‘publish’)) AND wp_posts.ID IN ( SELECT ID FROM wp_posts WHERE ID NOT IN ( SELECT post_id FROM wp_give_formmeta WHERE wp_give_formmeta.meta_key = ‘groups-groups_read_post’ ) UNION ALL SELECT post_id AS ID FROM wp_give_formmeta WHERE wp_give_formmeta.meta_key = ‘groups-groups_read_post’ AND wp_give_formmeta.meta_value IN (”) ) GROUP BY wp_posts.ID ORDER BY wp_posts.post_title ASC LIMIT 0, 30 made by do_action(‘admin_init’), WP_Hook->do_action, WP_Hook->apply_filters, Give_Shortcode_Generator->init, Give_Shortcode_Generator->get_fields, Give_Shortcode_Generator->generate_fields, Give_Shortcode_Generator->generate_post, get_posts, WP_Query->query, WP_Query->get_posts

    I am still getting continuous errors. The error_log in wp-admin has grown 13 MB in two weeks. So I have to delete it regularly.

    I contacted the Groups plugin and they said this:

    It seems that this plugin is using its own table to store meta data instead of using the standard postmeta table. I don’t see why that table is even created as it has the same structure and it seems to be used to pull meta data for the custom post type. But I’m not really familiar with that plugin, it’s just what I saw from a quick look.

    https://github.com/WordImpress/Give/blob/master/includes/class-give-db-form-meta.php#L73

    This table has a column called form_id instead of the usual post_id used in postmeta and that seems to be causing the issue. Unless this is changed, I don’t think that the plugin is going to be compatible with Groups. Maybe it’s a good suggestion to rethink the design of that table to see if it is even needed or they could just work with the normal postmeta instead? Easier to maintain IMHO …

    I would hate to have to change the Groups plugin as it would mean some major changes to the site. Please, is there any help you can give us?

    Thank You!

    kallym

    (@kallym)

    I have read the Github thread and it seems to have stalled. They mention that WooCommerce and EDD use this same database structure, but I use both of those plugins, and EDD, in particular, on this site and they do not cause the same error. I will leave mention this on Github.

    Plugin Author Matt Cromwell

    (@webdevmattcrom)

    HI @kallym — I like the Groups plugin a lot, it’s really useful, and I can certainly understand how useful it could be together with Give. But as both our Developers and @proaktion have noted, Groups does not support plugins that use custom database tables. While using postmeta may be convenient for plugin development, it doesn’t scale well with transactions like what many of our Give customers have, which is why we (like WooCommerce and EDD and other robust ecommerce plugins) have chosen a custom database table.

    All that to say, the only way to resolve this at this point would be to create a Groups-GiveWP Addon which would reroute things appropriately. This is because it is not reasonable for Give to change its database structure at all, nor is it reasonable for the Groups plugin to seek to accommodate any and all custom tables that might exist out there.

    I wish I had a nicer solution for you, and I will be looking into it a bit more myself because of how great I think the Groups plugin is, but at this point I can’t make any promises.

    kallym

    (@kallym)

    Thank you! That makes sense. I have moderate PHP knowledge and have created several simple plugins, so maybe with some digging around I can figure it out. It’s for a non-profit client, and cost is always a consideration, so may just continue to delete the error log ever so often as there are no apparent problems on the front end.

    Kento

    (@proaktion)

    Hi there,

    I think Matt’s suggestion for a Groups-GiveWP integration is a sensible solution.

    @webdevmattcrom Maybe we could be working out such an integration together and we can save @kallym and others from having to bother with those errors in the debug.log?

    Cheers

Viewing 13 replies - 1 through 13 (of 13 total)
  • The topic ‘Database Error re. post_id in wp_give_formmeta’ is closed to new replies.