Skip to content
Snippets Groups Projects
README.md 2.44 KiB
Newer Older
  • Learn to ignore specific revisions
  • Kevin Cristiano's avatar
    Kevin Cristiano committed
    # REST API integration for CiviCRM
    
    This code exposes CiviCRM's [extern](https://github.com/civicrm/civicrm-core/tree/master/extern) scripts as WordPress REST endpoints.
    
    ### Requirements
    
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
    -   PHP 7.3+
    
    Kevin Cristiano's avatar
    Kevin Cristiano committed
    -   WordPress 4.7+
    -   CiviCRM to be installed and activated.
    
    ### Endpoints
    
    1. `civicrm/v3/rest` - a wrapper around `civicrm_api3()`
    
        **Parameters**:
    
        - `key` - **required**, the site key
        - `api_key` - **required**, the contact api key
        - `entity` - **required**, the API entity
        - `action` - **required**, the API action
        - `json` - **optional**, json formatted string with the API parameters/argumets, or `1` as in `json=1`
    
        By default all calls to `civicrm/v3/rest` return XML formatted results, to get `json` formatted result pass `json=1` or a json formatted string with the API parameters, like in the example 2 below.
    
        **Examples**:
    
        1. `https://example.com/wp-json/civicrm/v3/rest?entity=Contact&action=get&key=<site_key>&api_key=<api_key>&group=Administrators`
    
        2. `https://example.com/wp-json/civicrm/v3/rest?entity=Contact&action=get&key=<site_key>&api_key=<api_key>&json={"group": "Administrators"}`
    
    2. `civicrm/v3/url` - a substition for `civicrm/extern/url.php` mailing tracking
    
    3. `civicrm/v3/open` - a substition for `civicrm/extern/open.php` mailing tracking
    
    4. `civicrm/v3/authorizeIPN` - a substition for `civicrm/extern/authorizeIPN.php` (for testing Authorize.net as per [docs](https://docs.civicrm.org/sysadmin/en/latest/setup/payment-processors/authorize-net/#shell-script-testing-method))
    
        **_Note_**: this endpoint has **not been tested**
    
    5. `civicrm/v3/ipn` - a substition for `civicrm/extern/ipn.php` (for PayPal Standard and Pro live transactions)
    
        **_Note_**: this endpoint has **not been tested**
    
    6. `civicrm/v3/cxn` - a substition for `civicrm/extern/cxn.php`
    
    7. `civicrm/v3/pxIPN` - a substition for `civicrm/extern/pxIPN.php`
    
        **_Note_**: this endpoint has **not been tested**
    
    8. `civicrm/v3/widget` - a substition for `civicrm/extern/widget.php`
    
        **_Note_**: this endpoint has **not been tested**
    
    ### Settings
    
    Set the `CIVICRM_WP_REST_REPLACE_MAILING_TRACKING` constant to `true` to replace mailing url and open tracking calls with their counterpart REST endpoints, `civicrm/v3/url` and `civicrm/v3/open`.
    
    _Note: use this setting with caution, it may affect performance on large mailings, see `CiviCRM_WP_REST\Civi\Mailing_Hooks` class._