3 +--------------------------------------------------------------------+
4 | Copyright CiviCRM LLC. All rights reserved. |
6 | This work is published under the GNU AGPLv3 license with some |
7 | permitted exceptions and without any warranty. For full license |
8 | and copyright information, see https://civicrm.org/licensing |
9 +--------------------------------------------------------------------+
14 * This api exposes CiviCRM contribution pages.
16 * @package CiviCRM_APIv3
20 * Create or update a ContributionPage.
22 * @param array $params
23 * Array per getfields metadata.
28 function civicrm_api3_contribution_page_create($params) {
29 $result = _civicrm_api3_basic_create(_civicrm_api3_get_BAO(__FUNCTION__
), $params, 'ContributionPage');
30 CRM_Contribute_PseudoConstant
::flush('contributionPageAll');
31 CRM_Contribute_PseudoConstant
::flush('contributionPageActive');
36 * Adjust Metadata for Create action.
38 * The metadata is used for setting defaults, documentation & validation.
40 * @param array $params
41 * Array per getfields metadata.
43 function _civicrm_api3_contribution_page_create_spec(&$params) {
44 $params['financial_type_id']['api.required'] = 1;
45 $params['payment_processor']['api.aliases'] = ['payment_processor_id'];
46 $params['is_active']['api.default'] = 1;
50 * Returns array of ContributionPage(s) matching a set of one or more group properties.
52 * @param array $params
53 * Array per getfields metadata.
56 * API Result array Array of matching contribution_pages
58 function civicrm_api3_contribution_page_get($params) {
59 return _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__
), $params);
63 * Delete an existing ContributionPage.
65 * This method is used to delete any existing ContributionPage given its id.
67 * @param array $params
68 * Array per getfields metadata.
73 function civicrm_api3_contribution_page_delete($params) {
74 return _civicrm_api3_basic_delete(_civicrm_api3_get_BAO(__FUNCTION__
), $params);
78 * Submit a ContributionPage.
80 * @param array $params
81 * Array per getfields metadata.
86 function civicrm_api3_contribution_page_submit($params) {
87 $result = CRM_Contribute_Form_Contribution_Confirm
::submit($params);
88 return civicrm_api3_create_success($result, $params, 'ContributionPage', 'submit');
92 * Validate ContributionPage submission parameters.
94 * @param array $params
95 * Array per getfields metadata.
100 function civicrm_api3_contribution_page_validate($params) {
101 // If we are calling this as a result of a POST action (e.g validating a form submission before first getting payment
102 // authorization from a payment processor like Paypal checkout) the lack of a qfKey will not result in a valid
103 // one being generated so we generate one first.
104 $originalRequest = $_REQUEST;
105 $qfKey = $_REQUEST['qfKey'] ??
NULL;
107 $_REQUEST['qfKey'] = CRM_Core_Key
::get('CRM_Core_Controller', TRUE);
109 $form = new CRM_Contribute_Form_Contribution_Main();
110 $form->controller
= new CRM_Core_Controller();
111 $form->set('id', $params['id']);
113 $errors = CRM_Contribute_Form_Contribution_Main
::formRule($params, [], $form);
114 if ($errors === TRUE) {
117 $_REQUEST = $originalRequest;
118 return civicrm_api3_create_success($errors, $params, 'ContributionPage', 'validate');
122 * Metadata for validate action.
124 * @param array $params
126 function _civicrm_api3_contribution_page_validate_spec(&$params) {
128 'title' => ts('Contribution Page ID'),
129 'api.required' => TRUE,
130 'type' => CRM_Utils_Type
::T_INT
,
135 * Set default getlist parameters.
137 * @see _civicrm_api3_generic_getlist_defaults
139 * @param array $request
143 function _civicrm_api3_contribution_page_getlist_defaults(&$request) {
145 'description_field' => [