Upload folder via GUI - integrations
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
if(!defined('ABSPATH')) exit;
|
||||
class WMF_Service_MailerLite extends WMF_Service {
|
||||
public $id='mailerlite'; public $label='MailerLite'; public $group='email';
|
||||
protected $credentials=array('api_key'=>'','group_id'=>'');
|
||||
public function is_connected(){return!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 '<div class="wmf-widget-body">';
|
||||
if($conn) echo '<div class="wmf-connected-badge">✓ Verbunden</div>';
|
||||
echo '<form class="wmf-int-form">';
|
||||
echo '<input type="hidden" name="_wpnonce" value="'.esc_attr($nonce).'">';
|
||||
echo '<input type="hidden" name="action" value="'.esc_attr($act).'">';
|
||||
echo '<input type="hidden" name="services[]" value="mailerlite">';
|
||||
|
||||
echo '<p><label>API-Schluessel</label>';
|
||||
echo '<input type="text" name="credentials[mailerlite][api_key]" value="'.esc_attr($c['api_key']??'').'" class="widefat" autocomplete="off">';
|
||||
echo '<span class="description"><a href="https://app.mailerlite.com/integrations/api/" target="_blank">API-Schluessel in MailerLite →</a></span></p>';
|
||||
echo '<p><label>Gruppen-ID (optional)</label>';
|
||||
echo '<input type="text" name="credentials[mailerlite][group_id]" value="'.esc_attr($c['group_id']??'').'" class="widefat">';
|
||||
echo '<span class="description">Leer lassen fuer Standard-Liste</span></p>';
|
||||
|
||||
echo '<p><button type="submit" class="button button-primary">Speichern</button></p>';
|
||||
echo '</form>';
|
||||
|
||||
echo '</div>';
|
||||
}
|
||||
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;
|
||||
$name=''; foreach($fields as $f){if(($f['type']??'')==='text'&&!empty($values[$f['id']])){$name=$values[$f['id']];break;}}
|
||||
$body=array('email'=>$email); if($name) $body['name']=$name;
|
||||
$gid=$this->credentials['group_id']??'';
|
||||
$url=$gid?"https://api.mailerlite.com/api/v2/groups/{$gid}/subscribers":'https://api.mailerlite.com/api/v2/subscribers';
|
||||
wp_remote_post($url,array('headers'=>array('X-MailerLite-ApiKey'=>$this->credentials['api_key'],'Content-Type'=>'application/json'),'body'=>wp_json_encode($body),'timeout'=>10));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user