tsu_newsletter_create_api_endpoint.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <?php
  2. function aiac_tsu_register_string()
  3. {
  4. do_action('wpml_register_single_string', 'aiac', 'Twój adres został zapisany poprawnie.', 'Twój adres został zapisany poprawnie.', false, 'pl');
  5. do_action('wpml_register_single_string', 'aiac', 'Ten adres e-mail już istnieje.', 'Ten adres e-mail już istnieje.', false, 'pl');
  6. }
  7. add_action('init', 'aiac_tsu_register_string');
  8. function add_email_from_newsletter($data)
  9. {
  10. // variables
  11. // $emailSystem = true; // True when using an external system.
  12. $emailSystem = false; // False when using our own custom-post.
  13. // sanitize_email
  14. $email = sanitize_email($data["email"]);
  15. if ($emailSystem) {
  16. // obsługa e-maila za pomocą zewnętrznego systemu
  17. // WAŻNE !! Jak nie jest potrzebne custom-post to czy mamy go rejestrować ?
  18. $url = "https://connect.mailerlite.com/api/subscribers";
  19. $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";
  20. // Dane do wysłania
  21. $data = array(
  22. "email" => $data["email"]
  23. );
  24. // Inicjalizacja sesji cURL
  25. $ch = curl_init();
  26. // Ustawienia opcji cURL
  27. curl_setopt($ch, CURLOPT_URL, $url);
  28. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  29. curl_setopt($ch, CURLOPT_POST, true);
  30. curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
  31. curl_setopt(
  32. $ch,
  33. CURLOPT_HTTPHEADER,
  34. array(
  35. 'Content-Type: application/json',
  36. 'Accept: application/json',
  37. 'Authorization: Bearer ' . $token
  38. )
  39. );
  40. // Wykonanie żądania
  41. $response = curl_exec($ch);
  42. // Pobranie HTTP Code
  43. $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  44. // // Sprawdzenie błędów
  45. // if (curl_errno($ch)) {
  46. // echo 'Błąd cURL: ' . curl_error($ch);
  47. // }
  48. curl_close($ch);
  49. if ($http_code == 201) {
  50. // dodano prawidłowo
  51. wp_send_json([
  52. "message" => __('Twój adres został zapisany poprawnie.', 'aiac'), // to translate nie działa prawidłowo, DO ZMIENNEJ NA GÓRZE
  53. ], 201);
  54. } else {
  55. // email już istnieje
  56. wp_send_json([
  57. "message" => __('Ten adres e-mail już istnieje.', 'aiac') // to translate nie działa prawidłowo, DO ZMIENNEJ NA GÓRZE
  58. ], 200);
  59. }
  60. } else {
  61. // obsługa e-maila za pomocą naszego post: custom_post_type
  62. $isAlredy = get_page_by_title($email, OBJECT, 'email');
  63. if ($isAlredy > 0) {
  64. wp_send_json([
  65. "message" => __('Ten adres e-mail już istnieje.', 'aiac') // to translate nie działa prawidłowo, DO ZMIENNEJ NA GÓRZE
  66. ], 200);
  67. } else {
  68. try {
  69. $postarr = [
  70. "post_content" => $data["email"],
  71. "post_title" => $data["email"],
  72. "post_type" => "email",
  73. "post_status" => "publish"
  74. ];
  75. wp_insert_post($postarr, true);
  76. wp_send_json([
  77. "message" => __('Twój adres został zapisany poprawnie.', 'aiac'), // to translate nie działa prawidłowo, DO ZMIENNEJ NA GÓRZE
  78. ], 201);
  79. } catch (Exception $e) {
  80. wp_send_json_error($e->getMessage());
  81. }
  82. }
  83. wp_die();
  84. }
  85. }
  86. add_action("rest_api_init", function () {
  87. register_rest_route(
  88. "tsu/v1",
  89. "/newsletter/add_email",
  90. array(
  91. "methods" => "POST",
  92. "callback" => "add_email_from_newsletter"
  93. )
  94. );
  95. });