Поддержка Плагины Странно работает обработчик формы Contact Form 7

  • Написал я обработчик формы для сайта, какой отправляет данные в телеграм. Некотрое время все работало, но после бекапа обработчик формы начал игнорировать условие (после удачной отпрваки выбивать сообщение с благодарностью) Но сами даннные без проблем показываются в телеграме. Возможно проблема в коде, но изменений я никаких не делал.

    Вот сам код: (не судите строго, мой первый сайт)

    
    <?php
    
    $name = $_POST['user_name'];
    $phone = $_POST['user_phone'];
    $place = $_POST['user_place'];
    $promocode = $_POST['user_promocode'];
    $quantity = $_POST['user_quantity'];
    $utm_campaign  = $_POST['utm_campaign'];
    $utm_source = $_POST['utm_source'];
    $utm_medium = $_POST['utm_medium'];
    $utm_term = $_POST['utm_term'];
    $utm_content = $_POST['utm_content'];
    $token = '999';
    $chat_id = '999';
    
    // перенаправляем на себя же
    
    if (isset($_POST['user_name'], $_POST['user_phone'], $_POST['user_place'], $_POST['user_quantity'])) {
    	$name = $_POST['user_name'];
    	$phone = $_POST['user_phone'];
    	$place = $_POST['user_place'];
    	$quantity = $_POST['user_quantity'];
    	if (empty($name) || empty($phone) || empty($place) || empty($quantity)) { //если что то не ввели
    		echo 'Вы заполнили не все поля!';
    	} else { //все поля заполнены, отправляем
    		$arr = array(
    			'Імя та Прізвище: ' => $name,
    			'Телефон користувача: ' => $phone,
    			'Розатшування та відділення Нової пошти: ' => $place,
    			'Кількість: ' => $quantity,
    			'Промокод: ' => $promocode,
    			'utm_campaign:' => $utm_campaign,
    			'utm_source:' => $utm_source,
    			'utm_medium:' => $utm_medium,
    			'utm_term:' => $utm_term,
    			'utm_content:' => $utm_content
    		);
    
    		foreach ($arr as $key => $value) {
    			$txt .= "<b>" . $key . "</b> " . $value . "%0A";
    		};
    		$send = fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}", "r");
    		//проверяем отправку
    		if ($send) {
    			echo "
              <head><script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
    new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
    j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
    'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
    })(window,document,'script','dataLayer','GTM-KLFV94Q');</script>
    <!-- End Google Tag Manager --></head>
    			<body style='color: white; margin: 0; padding: 0;background: url(https://thumb.tildacdn.com/tild3166-6436-4836-a431-616366623730/-/format/webp/BG-02-02.png); background-repeat: no-repeat; background-size: cover ' >
    <noscript><iframe src='https://www.googletagmanager.com/ns.html?id=GTM-KLFV94Q'
    				height='0' width='0' style='display:none;visibility:hidden'></iframe></noscript>
    			<header style='height: 100%; width: 100%; padding-top: 5%; font-size: 25px; background-color: rgba(0, 0, 0, 0.61);'>
    			<center><img style='width: 100px;' src='https://thumb.tildacdn.com/tild3162-6335-4764-a562-353432316630/-/resize/150x/-/format/webp/_FB_ava-06-06.png' /><center>
    			<h1 style='text-align: center;font-family: Arial, Helvetica, sans-serif; font-size: 30px; margin-top: 30px;'>ДЯКУЄМО!</h1>";
    			echo "<h2 style='text-align: center; font-family: Arial, Helvetica, sans-serif;font-size: 30px; margin-top: 30px;'>Ваше замовлення прийнято!</h2>";
    			echo "<p style='text-align: center;font-family: Arial, Helvetica, sans-serif; font-size: 30px; margin-top: 30px;'>Адміністатор зв`
    
    яжеться с Вами<br>
    			мессенджером (Viber чи Telegram),<br>
    			та повідомить реквізити для оплати.
    
    			<p style='font-family: Arial; margin-top: 50px;'>Долучайтесь до нашої спільноти в:
    
    			<a target='_blank' href='https://www.facebook.com/forestmerchants/' rel="noopener"><span>Facebook</span><br></a>
    		
    			</header>";
    			
    			
    		} else echo 'Произошла ошибка при отправке сообщения.';
    		
    	}
    }
    
    • Тема изменена 1 месяц назад пользователем polter01.
    • Тема изменена 1 месяц назад пользователем Yui. Причина: please use CODE button for code formatting

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Юрий

    (@yube)

    но после бекапа

    Бэкап — сохранение резервной копии. Влияние этой процедуры на сохраняемые данные теоретически возможно разве что в квантовых компьютерах, но они еще не доросли до системных требований вордпресс. Так что влияние чего-то иного более вероятно.

    начал игнорировать условие

    Если речь о

    $send = fopen(...
    if ($send) {
    

    То проверка не совсем корректна, поскольку fopen в случае неудачи возвращает false, а потому проверять надо строго, т.е. $send !== false.

    Да и использование fopen для внешних http-запросов — не лучшее решение. Лучше использовать вордпрессовскую функцию wp_remote_request().

    Автор polter01

    (@polter01)

    Извиняюсь, не совсем правильно выразился. Тех. поддержка хостинга, куда я залил сайт, восстановили старую версию сайта из-за неизвестных ошибок. И именно после этого условие if($send) перестало работать, хотя оно работало во всех версиях сайта.
    Например на тестовой странице (http://forestmerchants.vozzov.net/) условие срабатывает. Но, когда я копирую код с тестовой страницы в основной сайт, то оно перестает работать. Что может быть не так?
    Ну в чем мистика. Только в тех. поддержки хостинга условие не перестало работать

    • Ответ изменён 1 месяц назад пользователем polter01.
Просмотр 2 ответов — с 1 по 2 (всего 2)