Nas*_*zad 7 wordpress notifications function call
我有这个通知功能,需要在代码的不同位置调用它.我需要把它放在我的子主题内以及plugins目录中的任何文件所访问的位置.
function send_notification($tokens, $message)
{
$url = 'https://fcm.googleapis.com/fcm/send';
$fields = array(
'registration_ids' => $tokens,
'data' => $message
);
$headers = array(
'Authorization:key = My_Token',
'Content-Type: application/json'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
$result = curl_exec($ch);
if ($result === FALSE) {
die('Curl failed: ' . curl_error($ch));
}
curl_close($ch);
return $result;
}
Run Code Online (Sandbox Code Playgroud)
任何解决方案和参考将不胜感激.谢谢.
由于您拥有一个具有广泛范围的函数,请考虑给它一个更唯一的名称以防止命名冲突,例如naser_send_notitification()而不只是send_notification,或者如果可以的话 - 考虑使用命名空间或类。
现在回答您的问题,functions.php实际上通常是需要在任何地方都可以访问的“广泛范围”功能的安全选择。如果您查看操作参考,您会发现它after_setup_theme是相对较早触发的,允许您的函数可以从该钩子或稍后访问 - 因为它在此时可用。但是,它确实出现在 之后plugins_loaded,因此如果您在此之前需要它,则需要将其转换为带有文件头或“MU 插件”的插件。
如果您需要尽早有效地访问它,请考虑将其放入文件中/wp-content/mu-plugins/并为其命名,甚至可以是custom-functions.php. 这些文件称为必须使用的插件。此目录中的文件始终会加载,并且始终先于其他任何内容运行,因此可以非常早地访问其中声明的函数。这通常是我放置需要确保与主题无关、始终打开且无法停用的代码的位置。
如此有效:
1)将您的函数重命名为更独特的名称,例如naser_send_notitification()
2)将此代码放入/wp-content/mu-plugins/custom-funtions.php
3)现在你应该能够调用钩子naser_send_notification( $tokens, $message )之后的任何函数或钩子muplugins_loaded(几乎在任何地方)