Details
-
Type: Bug
-
Status: Done/Fixed
-
Priority: Major
-
Resolution: Duplicate
-
Affects Version/s: 4.7.10
-
Fix Version/s: None
-
Component/s: WordPress Integration
-
Labels:None
-
Documentation Required?:None
-
Funding Source:Needs Funding
Description
Steps to Reproduce
I'm not sure all of the following are necessary, but these are the step I took to trigger this reliably repeatable error:
- Configure WP to allow anyone to register (Settings > General).
- Ensure that the Supporter Profile is set to require account creation and update matching contacts.
- Create a contribution page.
- On the Title tab, check "Allow individuals to contribute and/or signup for membership on behalf of an organization?" Select "On Behalf of Organization." Select the "Required" radio button.
- On the Membership tab, check "Membership Section Enabled?" Check the General and Student membership types. Check "Require Membership Signup."
- On the Profiles tab, select Supporter Profile for the bottom of the page.
As an anonymous user, fill out the form, and you will get a fatal error.
Technical
The database error code is:
Duplicate entry 'frank@example.org-1' for key 'UI_uf_name_domain_id', 1062
The failing query is:
INSERT INTO civicrm_uf_match (domain_id , uf_id , uf_name , contact_id ) VALUES ( 1 , 3 , 'frank@example.org' , 205 )
In CiviCRM, you will find:
- Contact ID x: The individual who filled out the form, with a relationship to:
- Contact ID x + 1: The organization contact record, with a contribution record but no membership record.
- Contact ID x + 2: An individual contact record with an associated WP account. The contact record consists of only the email address for Contact ID x.
The backtrace is:
Aug 08 08:24:31 [info] $backTrace = #0 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/CRM/Core/Error.php(227): CRM_Core_Error::backtrace("backTrace", TRUE) #1 [internal function](): CRM_Core_Error::handle(Object(DB_Error)) #2 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/packages/PEAR.php(931): call_user_func((Array:2), Object(DB_Error)) #3 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/packages/DB.php(976): PEAR_Error->PEAR_Error("DB Error: already exists", -5, 16, (Array:2), "INSERT INTO civicrm_uf_match (domain_id , uf_id , uf_name , contact_id ) VALU...") #4 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/packages/PEAR.php(564): DB_Error->DB_Error(-5, 16, (Array:2), "INSERT INTO civicrm_uf_match (domain_id , uf_id , uf_name , contact_id ) VALU...") #5 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/packages/DB/common.php(1905): PEAR->raiseError(NULL, -5, NULL, NULL, "INSERT INTO civicrm_uf_match (domain_id , uf_id , uf_name , contact_id ) VALU...", "DB_Error", TRUE) #6 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/packages/DB/mysql.php(895): DB_common->raiseError(-5, NULL, NULL, NULL, "1062 ** Duplicate entry 'frank@example.org-1' for key 'UI_uf_name_...") #7 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/packages/DB/mysql.php(328): DB_mysql->mysqlRaiseError() #8 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/packages/DB/common.php(1216): DB_mysql->simpleQuery("INSERT INTO civicrm_uf_match (domain_id , uf_id , uf_name , contact_id ) VALU...") #9 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/packages/DB/DataObject.php(2438): DB_common->query("INSERT INTO civicrm_uf_match (domain_id , uf_id , uf_name , contact_id ) VALU...") #10 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/packages/DB/DataObject.php(1060): DB_DataObject->_query("INSERT INTO civicrm_uf_match (domain_id , uf_id , uf_name , contact_id ) VALU...") #11 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/CRM/Core/DAO.php(477): DB_DataObject->insert() #12 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/CRM/Core/BAO/UFMatch.php(55): CRM_Core_DAO->save() #13 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/CRM/Core/BAO/CMSUser.php(66): CRM_Core_BAO_UFMatch::create((Array:3)) #14 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/CRM/Contribute/BAO/Contribution/Utils.php(336): CRM_Core_BAO_CMSUser::create((Array:72), "email-5") #15 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/CRM/Contribute/Form/Contribution/Confirm.php(1024): CRM_Contribute_BAO_Contribution_Utils::createCMSUser((Array:72), "3353", "email-5") #16 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/CRM/Contribute/BAO/Contribution/Utils.php(118): CRM_Contribute_Form_Contribution_Confirm::processFormContribution(Object(CRM_Contribute_Form_Contribution_Confirm), (Array:67), NULL, (Array:7), Object(CRM_Financial_DAO_FinancialType), TRUE, 5, "0") #17 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/CRM/Contribute/Form/Contribution/Confirm.php(1427): CRM_Contribute_BAO_Contribution_Utils::processConfirm(Object(CRM_Contribute_Form_Contribution_Confirm), (Array:67), "3353", "2", "membership", FALSE, "0") #18 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/CRM/Contribute/Form/Contribution/Confirm.php(1364): CRM_Contribute_Form_Contribution_Confirm->postProcessMembership((Array:61), "3353", Object(CRM_Contribute_Form_Contribution_Confirm), (Array:50), (Array:0), (Array:3), (Array:13), (Array:1), TRUE, NULL, FALSE, "2", (Array:0), 0, TRUE) #19 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/CRM/Contribute/Form/Contribution/Confirm.php(2279): CRM_Contribute_Form_Contribution_Confirm->processMembership((Array:61), "3353", (Array:0), (Array:3), (Array:50), (Array:0), 0) #20 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/CRM/Contribute/Form/Contribution/Confirm.php(2153): CRM_Contribute_Form_Contribution_Confirm->doMembershipProcessing("3353", (Array:58), (Array:50), 0) #21 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/CRM/Contribute/Form/Contribution/Confirm.php(597): CRM_Contribute_Form_Contribution_Confirm->processFormSubmission(NULL) #22 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php(423): CRM_Contribute_Form_Contribution_Confirm->postProcess() #23 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/CRM/Core/StateMachine.php(160): CRM_Core_Form->mainProcess() #24 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/CRM/Core/QuickForm/Action/Next.php(61): CRM_Core_StateMachine->perform(Object(CRM_Contribute_Form_Contribution_Confirm), "next", "Next") #25 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Next->perform(Object(CRM_Contribute_Form_Contribution_Confirm), "next") #26 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Contribute_Form_Contribution_Confirm), "next") #27 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/CRM/Core/Controller.php(351): HTML_QuickForm_Page->handle("next") #28 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(312): CRM_Core_Controller->run((Array:3), NULL) #29 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(86): CRM_Core_Invoke::runItem((Array:15)) #30 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(54): CRM_Core_Invoke::_invoke((Array:3)) #31 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/civicrm.php(1227): CRM_Core_Invoke::invoke((Array:3)) #32 /home/example/websites/example.org/htdocs/wp-content/plugins/civicrm/includes/civicrm.basepage.php(132): CiviCRM_For_WordPress->invoke() #33 [internal function](): CiviCRM_For_WordPress_Basepage->basepage_handler(Object(WP)) #34 /home/example/websites/example.org/htdocs/wp-includes/plugin.php(601): call_user_func_array((Array:2), (Array:1)) #35 /home/example/websites/example.org/htdocs/wp-includes/class-wp.php(737): do_action_ref_array("wp", (Array:1)) #36 /home/example/websites/example.org/htdocs/wp-includes/functions.php(952): WP->main("") #37 /home/example/websites/example.org/htdocs/wp-blog-header.php(16): wp() #38 /home/example/websites/example.org/htdocs/index.php(17): require("/home/example/websites/example.org/htdocs/wp-blog-header.php") #39 {main}