The official GiveWP development blog

We want Give to run reliably alongside all plugins within WordPress. Sometimes, though, this can be difficult with 40,000+ free plugins and many more Pro ones. One such conflict we found was with Restrict Content Pro from Sandhills Development. This is a popular membership plugin that is useful alongside Give, so we wanted to get a fix out for it and also reduce the chances of other plugin conflicts.

The Conflict Explained

The GitHub issue explains the problem pretty well however we’ll explain it here briefly: Both Give and RCP have a custom table called “paymentmeta”. This resulted in missing data when donations were submitted to the tables. It also caused issues with our API and add-ons like Zapier.

We found the conflict between RCP and Give happened because we have a common $wpdb property paymentmeta. This resulted in data being lost when donations occurred.

As well, do not use hardcoded payment_id for the column name (the payment meta table’s second column name). According to WordPress’ database schema, the meta table’s second column name must have meta type as the prefix.

For example:

post_id (postmeta table and meta type is post)

comment_id (commentmeta table and meta type is comment)

user_id (usermeta table and meta type is user)

term_id (termmeta table and meta type is post)

In Give 2.0.2, we have renamed the meta type to “donation”, so now the meta table’s second column name will be donation_id (not payment_id).

If you construct the column name dynamically then your code will run without any issue on Give 2.2.0+.