浏览代码

Switch to activate an external newsletter service system

Adrian Florczak 2 年之前
父节点
当前提交
fc03653598
共有 1 个文件被更改,包括 83 次插入76 次删除
  1. 83 76
      tsu_newsletter_create_api_endpoint.php

+ 83 - 76
tsu_newsletter_create_api_endpoint.php

@@ -10,92 +10,99 @@ add_action('init', 'aiac_tsu_register_string');
 
 function add_email_from_newsletter($data)
 {
+    // variables
+    // $emailSystem = true; // True when using an external system.
+    $emailSystem = false; // False when using our own custom-post.
 
+    // sanitize_email
     $email = sanitize_email($data["email"]);
 
-    // $hasEmail = get_posts([
-    //     "post_type" => "email",
-    //     "post_status" => "publish"
-    // ]);
-
-    $isAlredy = get_page_by_title($email, OBJECT, 'email');
+    if ($emailSystem) {
+        // obsługa e-maila za pomocą zewnętrznego systemu
+        // WAŻNE !! Jak nie jest potrzebne custom-post to czy mamy go rejestrować ?
+
+        $url = "https://connect.mailerlite.com/api/subscribers";
+        $token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiI0IiwianRpIjoiZTQ3OGVmNTY1OWJhYWUzYzlmNTE1YzIzYjFkMmJkMGNmNmI4M2QyNDdmN2Y2NzY1ZWNmOTQ4OTMwMWU5OWQyZGM5MjU5OTI4NGIyZjE3NWYiLCJpYXQiOjE3MDE3ODYyMDkuMTQ1MTQ2LCJuYmYiOjE3MDE3ODYyMDkuMTQ1MTQ4LCJleHAiOjQ4NTc0NTk4MDkuMTM1NzQ4LCJzdWIiOiI3NDEyMDMiLCJzY29wZXMiOltdfQ.IzhP03Vor3BwpRevuidF69b7DLo2hkBFzKL4-ZEBe45I92kZUEEEVq6BBZz7mi9bMUi3MuxA4yoE3KydjWnIo1c59-GEVyxieQWwNIFixWmGUnjRARKt9lcBcd0Yo5hIgoJmQefLTZ0TGj1K97tXA__bFZgVJD5r70jeZkIrUY9un3nXYJkj9t0JXfWJnkICo7D1aIcQnFRFbI0w4e4tasFLv6hHFiR-WO0jrHnjX7jNgtFIy0MwmMaV9LLbk_7z3_THPLVOg7EHgixOVD3b9xxcextaH-B_1e1qKWpDQhofm1GmZn3GNjwrw-mAT6qZ9WmccQuVsr1VuIubW1CvgcBphS8OCYgiT-lB3GVMmOKeGs2Knp7_hMUNx_Imsv-yBQlYaZYEP2y4f2-AhZRwT3g3XcLsmI9OjjbGUxf0zTn6atYXZcA2lcSzQWdFrhW63hxQz42EOzV1L7xLqLBUd6MTAgByPIQGwtFJD-evrsglqtByj8CIsGbE83O8C-F47l1hYQTXbB-mwi1Q4KQFmT0b617OQ_nRR74_54Y27U74bBXnnWF7wch7THWRYWBkJOk5RLwagDpOdafknKdiIYPzvBK2Uvh9FVrCE4e0QWUDTG16iqudtGksLv_NeaAcERBSe0AKuujIcqd5kXfriyyKL4rEye-r3OuSDIM7OaU";
+
+        // Dane do wysłania
+        $data = array(
+            "email" => $data["email"]
+        );
+
+        // Inicjalizacja sesji cURL
+        $ch = curl_init();
+
+        // Ustawienia opcji cURL
+        curl_setopt($ch, CURLOPT_URL, $url);
+        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+        curl_setopt($ch, CURLOPT_POST, true);
+        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
+        curl_setopt(
+            $ch,
+            CURLOPT_HTTPHEADER,
+            array(
+                'Content-Type: application/json',
+                'Accept: application/json',
+                'Authorization: Bearer ' . $token
+            )
+        );
+
+        // Wykonanie żądania
+        $response = curl_exec($ch);
+
+        // Pobranie HTTP Code
+        $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
+
+        // // Sprawdzenie błędów
+        // if (curl_errno($ch)) {
+        //     echo 'Błąd cURL: ' . curl_error($ch);
+        // }
+
+        curl_close($ch);
+
+        if ($http_code == 201) {
+            // dodano prawidłowo
+            wp_send_json([
+                "message" => __('Twój adres został zapisany poprawnie.', 'aiac'), // to translate nie działa prawidłowo, DO ZMIENNEJ NA GÓRZE
+            ], 201);
 
-    // są dwa miejsca zapisu danych, wystarczy że w jednym miejscu ktoś usunie coś i już dane są rozsynchronizowane
-    // czy zapisujemy w jednym miejscu czy robimy mechanizm do synchronizacji ?
+        } else {
+            // email już istnieje
+            wp_send_json([
+                "message" => __('Ten adres e-mail już istnieje.', 'aiac') // to translate nie działa prawidłowo, DO ZMIENNEJ NA GÓRZE
+            ], 200);
+        }
 
-    if ($isAlredy > 0) {
-        wp_send_json([
-            "message" => __('Ten adres e-mail już istnieje.', 'aiac')
-        ], 400);
     } else {
-        try {
-            $postarr = [
-                "post_content" => $data["email"],
-                "post_title" => $data["email"],
-                "post_type" => "email",
-                "post_status" => "publish"
-            ];
-
-            wp_insert_post($postarr, true);
-
-
-            // cURL do zapisu e-maila do mailerlite
-            $url = "https://connect.mailerlite.com/api/subscribers";
-            $token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiI0IiwianRpIjoiZTQ3OGVmNTY1OWJhYWUzYzlmNTE1YzIzYjFkMmJkMGNmNmI4M2QyNDdmN2Y2NzY1ZWNmOTQ4OTMwMWU5OWQyZGM5MjU5OTI4NGIyZjE3NWYiLCJpYXQiOjE3MDE3ODYyMDkuMTQ1MTQ2LCJuYmYiOjE3MDE3ODYyMDkuMTQ1MTQ4LCJleHAiOjQ4NTc0NTk4MDkuMTM1NzQ4LCJzdWIiOiI3NDEyMDMiLCJzY29wZXMiOltdfQ.IzhP03Vor3BwpRevuidF69b7DLo2hkBFzKL4-ZEBe45I92kZUEEEVq6BBZz7mi9bMUi3MuxA4yoE3KydjWnIo1c59-GEVyxieQWwNIFixWmGUnjRARKt9lcBcd0Yo5hIgoJmQefLTZ0TGj1K97tXA__bFZgVJD5r70jeZkIrUY9un3nXYJkj9t0JXfWJnkICo7D1aIcQnFRFbI0w4e4tasFLv6hHFiR-WO0jrHnjX7jNgtFIy0MwmMaV9LLbk_7z3_THPLVOg7EHgixOVD3b9xxcextaH-B_1e1qKWpDQhofm1GmZn3GNjwrw-mAT6qZ9WmccQuVsr1VuIubW1CvgcBphS8OCYgiT-lB3GVMmOKeGs2Knp7_hMUNx_Imsv-yBQlYaZYEP2y4f2-AhZRwT3g3XcLsmI9OjjbGUxf0zTn6atYXZcA2lcSzQWdFrhW63hxQz42EOzV1L7xLqLBUd6MTAgByPIQGwtFJD-evrsglqtByj8CIsGbE83O8C-F47l1hYQTXbB-mwi1Q4KQFmT0b617OQ_nRR74_54Y27U74bBXnnWF7wch7THWRYWBkJOk5RLwagDpOdafknKdiIYPzvBK2Uvh9FVrCE4e0QWUDTG16iqudtGksLv_NeaAcERBSe0AKuujIcqd5kXfriyyKL4rEye-r3OuSDIM7OaU";
-
-
-
-            // Dane do wysłania
-            $data = array(
-                "email" => $data["email"],
-                // Czy te dane są wymagane ?
-                // "fields" => array(
-                //     "name" => "Dummy",
-                //     "last_name" => "Testerson"
-                // ),
-                // "groups" => array(
-                //     "106731061900215448"
-                // )
-            );
-
-            // Inicjalizacja sesji cURL
-            $ch = curl_init();
-
-            // Ustawienia opcji cURL
-            curl_setopt($ch, CURLOPT_URL, $url);
-            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
-            curl_setopt($ch, CURLOPT_POST, true);
-            curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
-            curl_setopt(
-                $ch,
-                CURLOPT_HTTPHEADER,
-                array(
-                    'Content-Type: application/json',
-                    'Accept: application/json',
-                    'Authorization: Bearer ' . $token
-                )
-            );
-
-            // Wykonanie żądania
-            $response = curl_exec($ch);
-
-            // // Sprawdzenie błędów
-            // if (curl_errno($ch)) {
-            //     echo 'Błąd cURL: ' . curl_error($ch);
-            // }
-
-            curl_close($ch);
+        // obsługa e-maila za pomocą naszego post: custom_post_type
+        $isAlredy = get_page_by_title($email, OBJECT, 'email');
 
+        if ($isAlredy > 0) {
             wp_send_json([
-                "message" => __('Twój adres został zapisany poprawnie.', 'aiac'),
-                // "mailerliteResponse" => $response // only for test
-            ], 201);
-        } catch (Exception $e) {
-            wp_send_json_error($e->getMessage());
+                "message" => __('Ten adres e-mail już istnieje.', 'aiac') // to translate nie działa prawidłowo, DO ZMIENNEJ NA GÓRZE
+            ], 200);
+        } else {
+            try {
+                $postarr = [
+                    "post_content" => $data["email"],
+                    "post_title" => $data["email"],
+                    "post_type" => "email",
+                    "post_status" => "publish"
+                ];
+    
+                wp_insert_post($postarr, true);
+    
+                wp_send_json([
+                    "message" => __('Twój adres został zapisany poprawnie.', 'aiac'), // to translate nie działa prawidłowo, DO ZMIENNEJ NA GÓRZE
+                ], 201);
+            } catch (Exception $e) {
+                wp_send_json_error($e->getMessage());
+            }
         }
+    
+        wp_die();
+        
     }
-
-    wp_die();
 }
 
 add_action("rest_api_init", function () {