我正在开发一个 CMS 模块,需要使用 Google OAUTH 2 作为服务器到服务器应用程序。根据官方手册,需要设置一个环境变量,其路径为 .json 键,如下所示:
putenv('GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json');
Run Code Online (Sandbox Code Playgroud)
这是棘手的部分。如果我在独立的 Web 应用程序中使用它,那么就不会有任何问题,但由于我正在开发 CMS 模块,将该文件存储在驱动器上或创建与使用相关的任何类型的挂钩该文件的内容会构成潜在的安全威胁,因为我已经看到如何通过使用另一个模块来偷偷窃取密钥的内容。
我想将此文件的内容存储在数据库中,问题是:有没有一种方法可以在不使用路径的情况下设置 GOOGLE_APPLICATION_CREDENTIALS 的环境值?
我需要发送,当我手动设置从订单状态的客户电子邮件通知processing
到on-hold
状态。我已将以下操作挂钩添加到我的functions.php
文件中:
add_action( 'woocommerce_order_status_processing_to_on-hold_notification', array( $this, 'trigger' ), 10, 2 );
Run Code Online (Sandbox Code Playgroud)
它不工作(没有显示在 WP 邮件日志中),即使在 woocommerce 设置中启用了这个特定的电子邮件通知,并且如下所示的类似钩子工作得很好:
add_action( 'woocommerce_order_status_pending_to_on-hold_notification', array( $this, 'trigger' ), 10, 2 );
Run Code Online (Sandbox Code Playgroud)
环境:Woocommerce v.3.5.1 Wordpress v.4.9.9 PHP 5.6
任何帮助将非常感激。
我正在尝试构建一个根据用户状态输出导航菜单的例程.它需要提供一个嵌套的数组变量(company => role),它看起来像:
array(2) {
["Company 1"]=>
array(2) {
[0]=>
string(3) "dir"
[1]=>
string(5) "manag"
}
["company 2"]=>
string(3) "dir"
}
Run Code Online (Sandbox Code Playgroud)
假设用户可以拥有多个角色.
现在我的例程(简化版,只是为了显示逻辑不起作用):
function get_menu_1 ($status) {
foreach ($status as $company => $position) {
$a = is_array($company); //THIS ALWAYS RETURNS FALSE this is for debugging
echo "<br>this element is array = $a<br>"; //this is for debugging
if (true == is_array($company)) { // THIS ALWAYS RETURNS FALSE this user in this company has multiple roles
foreach ($company as $subcompany => $subposition) …
Run Code Online (Sandbox Code Playgroud)