Intereting Posts
Смутно о пользовательских типах сообщений Есть ли способ сделать этот вид цикла короче и приятнее? использовал wp_get_attachment_image () в цикле, чтобы отобразить страницу галереи пользовательского типа изображений, и теперь изображения не будут удалять f Admin Ajax возвращается 0 Несколько условий для названия детской страницы Невозможно вручную создать базу данных (db, user, pass) для плагина Используйте одну и ту же структуру константной ссылки на основе даты для всех типов сообщений Таксономия Родитель не отображается в адресной строке Может ли плагин переопределять новый тип роли пользователя по умолчанию Единичные тесты – Работа с зависимостями Автоматически удалять помеченные страницы из навигационного меню Как создать персонализированный тип сообщения в отдельный класс вместо WP_Post Как перевести add_contextual_help на get_current_screen () -> add_help_tab () Отфильтровать и перечислить посты пользовательской таксономии Получаем дубликаты данных из get_posts ()

Я хочу отправить push-уведомление сразу после публикации нового сообщения

Я хотел бы отправлять push-сообщения с моего сайта на пользователей iOS / android каждый раз, когда я публикую новое сообщение. Я думаю, что это будет то же самое, что и выполнить PHP-код. Я попытался вставить php-скрипт, который отправляет push-сообщение на мое устройство iOs каждый раз, когда я его запускаю, но безуспешно. Я вставил PHP-код сразу после этого кода

<div id="content"> <?php if( have_posts() ): get_template_part( 'templates/content/content', str_replace('bw_pt_', '', get_post_type() ) ); 

В файле single.php в текстовом редакторе word-> Appearance->. Как и я загрузил файл ck.pem в той же папке. Это мой php-код, и когда я запускаю его с терминала, он работает хорошо. Мне нужно добавить какой-то пользовательский код, который будет извлекать базу данных для просмотра всего устройства и отправки push-уведомления для каждого устройства. Я сделаю код позже, на данный момент мне нужно знать, должен ли я вводить этот код, чтобы исполняться каждый раз, когда администратор нажимает кнопку публикации новой записи.

Это мой php-код:

  <?php // Put your device token here (without spaces): $deviceToken = '993c92d21b053c5115d1xxXXXXxxXXXXXxxxXXXXXxxebe9c21f0f59a0723de8bd38'; // Put your private key's passphrase here: $passphrase = '123456'; // Put your alert message here: $message = 'Hello world!'; //////////////////////////////////////////////////////////////////////////////// $ctx = stream_context_create(); stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem'); stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase); // Open a connection to the APNS server $fp = stream_socket_client( 'ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx); if (!$fp) exit("Failed to connect: $err $errstr" . PHP_EOL); echo 'Connected to APNS' . PHP_EOL; // Create the payload body $body['aps'] = array( 'alert' => $message, 'sound' => 'default' ); // Encode the payload as JSON $payload = json_encode($body); // Build the binary notification $msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload; // Send it to the server $result = fwrite($fp, $msg, strlen($msg)); if (!$result) echo 'Message not delivered' . PHP_EOL; else echo 'Message successfully delivered' . PHP_EOL; // Close the connection to the server fclose($fp); ?> 

Solutions Collecting From Web of "Я хочу отправить push-уведомление сразу после публикации нового сообщения"

Оберните его в функцию и переместите его на transition_post_status :

 function wpse_18140_transition_post_status( $new, $old, $post ) { if ( $new === 'publish' && $new !== $old ) { // Your code here } } add_action( 'transition_post_status', 'wpse_18140_transition_post_status', 10, 3 ); 

Это будет выполняться каждый раз, когда публикация публикуется , но не тогда, когда вы просто обновляете содержимое сообщения.