'','api_key'=>'','list_id'=>''); public function is_connected(){return!empty($this->credentials['api_url'])&&!empty($this->credentials['api_key']);} public function admin_widget($prev=array()){ $c = $this->get_credentials(); $int = wmf_get_integrations(); $act = $int->action_update; $nonce= wp_create_nonce($act); $conn = $this->is_connected(); echo '
'; } public function load(){add_action('wmf_form_submitted',array($this,'subscribe'),10,5);} public function subscribe($form_id,$meta,$fields,$values,$sub_id){ if(!$this->is_connected()) return; $email=''; foreach($fields as $f){if(($f['type']??'')==='email'&&!empty($values[$f['id']])){$email=$values[$f['id']];break;}} if(!is_email($email)) return; $api=rtrim($this->credentials['api_url'],'/'); $key=$this->credentials['api_key']; $res=wp_remote_post($api.'/api/3/contacts',array('headers'=>array('Api-Token'=>$key,'Content-Type'=>'application/json'),'body'=>wp_json_encode(array('contact'=>array('email'=>$email))),'timeout'=>10)); if(!is_wp_error($res)&&!empty($this->credentials['list_id'])){ $body=json_decode(wp_remote_retrieve_body($res),true); $cid=$body['contact']['id']??0; if($cid) wp_remote_post($api.'/api/3/contactLists',array('headers'=>array('Api-Token'=>$key,'Content-Type'=>'application/json'),'body'=>wp_json_encode(array('contactList'=>array('list'=>intval($this->credentials['list_id']),'contact'=>$cid,'status'=>1))),'timeout'=>10)); } } }