@@ -591,86 +591,90 @@ public function get_subscriber_tags(int $subscriber_id)
591591
592592 /**
593593 * Creates a webhook that will be called based on the chosen event types.
594- *
595- * @param string $url URL to receive event.
596- * @param array $events Array of events to subscribe to.
597- *
598- * @since 1.0.0
599- *
594+ *
595+ * @param string $url URL to receive event.
596+ * @param string $event Event to subscribe to.
597+ * @param string|integer $parameter Optional parameter depending on the event.
598+ *
599+ * @since 1.0.0
600+ *
600601 * @see https://developers.convertkit.com/#create-a-webhook
601- *
602+ *
602603 * @throws \InvalidArgumentException If the event is not supported.
603- *
604+ *
604605 * @return false|object
605606 */
606- public function create_webhook (string $ url , string $ event , string |int $ parameter )
607+ public function create_webhook (string $ url , string $ event , string |int $ parameter = '' )
607608 {
608609 // Depending on the event, build the required event array structure.
609- switch ($ event ) {
610+ switch ($ event ) {
610611 case 'subscriber.subscriber_activate ' :
611612 case 'subscriber.subscriber_unsubscribe ' :
612613 case 'purchase.purchase_create ' :
613- $ eventData = [
614- 'name ' => $ event ,
615- ];
614+ $ eventData = ['name ' => $ event ];
616615 break ;
616+
617617 case 'subscriber.form_subscribe ' :
618618 $ eventData = [
619619 'name ' => $ event ,
620- 'form_id ' => $ parameter , // Form ID.
620+ 'form_id ' => $ parameter ,
621621 ];
622622 break ;
623+
623624 case 'subscriber.course_subscribe ' :
624625 case 'subscriber.course_complete ' :
625626 $ eventData = [
626627 'name ' => $ event ,
627- 'course_id ' => $ parameter , // Course ID.
628+ 'course_id ' => $ parameter ,
628629 ];
629630 break ;
631+
630632 case 'subscriber.link_click ' :
631633 $ eventData = [
632634 'name ' => $ event ,
633- 'initiator_value ' => $ parameter , // URL clicked.
635+ 'initiator_value ' => $ parameter ,
634636 ];
635637 break ;
638+
636639 case 'subscriber.product_purchase ' :
637640 $ eventData = [
638641 'name ' => $ event ,
639- 'product_id ' => $ parameter , // Product ID.
642+ 'product_id ' => $ parameter ,
640643 ];
641644 break ;
645+
642646 case 'subscriber.tag_add ' :
643647 case 'subscriber.tag_remove ' :
644648 $ eventData = [
645649 'name ' => $ event ,
646- 'tag_id ' => $ parameter , // Tag ID.
650+ 'tag_id ' => $ parameter ,
647651 ];
648652 break ;
649653
650654 default :
651655 throw new \InvalidArgumentException (sprintf ('The event %s is not supported ' , $ event ));
652- }
656+ }//end switch
653657
654658 // Send request.
655659 return $ this ->post (
656660 'automations/hooks ' ,
657661 [
658662 'api_secret ' => $ this ->api_secret ,
659663 'target_url ' => $ url ,
660- 'event ' => json_encode ($ eventData )
664+ 'event ' => json_encode ($ eventData ),
661665 ]
662666 );
663667 }
664668
665669 /**
666670 * Deletes an existing webhook.
667- *
668- * @param integer $rule_id Rule ID.
669- *
670- * @since 1.0.0
671- *
671+ *
672+ * @param integer $rule_id Rule ID.
673+ *
674+ * @since 1.0.0
675+ *
672676 * @see https://developers.convertkit.com/#destroy-webhook
673- *
677+ *
674678 * @return false|object
675679 */
676680 public function destroy_webhook (int $ rule_id )
0 commit comments