diff --git a/CRM/TwingleCampaign/BAO/TwingleProject.php b/CRM/TwingleCampaign/BAO/TwingleProject.php index fe27794..2473c3d 100644 --- a/CRM/TwingleCampaign/BAO/TwingleProject.php +++ b/CRM/TwingleCampaign/BAO/TwingleProject.php @@ -91,8 +91,8 @@ class CRM_TwingleCampaign_BAO_TwingleProject extends Campaign { * @throws \Exception */ public function clone() { - unset($this->values['id']); - unset($this->values['identifier']); + $this->values['id'] = 0; + $this->values['identifier'] = 0; $this->create(); // this will also trigger the postSave hook } diff --git a/twinglecampaign.php b/twinglecampaign.php index 4ec4e54..58b5b65 100644 --- a/twinglecampaign.php +++ b/twinglecampaign.php @@ -89,7 +89,10 @@ function twinglecampaign_postSave_callback ( $result = civicrm_api3($entity, 'getsingle', ['id' => $campaign_id] )['values'][$campaign_id]; - $project = new $entity($result); + $className = 'CRM_TwingleCampaign_BAO_' . $entity; + $id = $result['id']; + unset($result['id']); + $project = new $className($result, $id); try { $project->clone(); } catch (Exception $e) {