Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取函数中字符串的值_Php_Wordpress - Fatal编程技术网

Php 获取函数中字符串的值

Php 获取函数中字符串的值,php,wordpress,Php,Wordpress,这里有一个函数: function rpress_get_service_types() { $service_types = array( 'delivery' => __( 'Delivery', 'restropress' ), 'pickup' => __( 'Pickup', 'restropress' ) ); return apply_filters( 'rpress_service_type', $service_types );

这里有一个函数:

function rpress_get_service_types() {
  $service_types = array(
    'delivery'  => __( 'Delivery', 'restropress' ),
    'pickup'    => __( 'Pickup', 'restropress' )
  );
  return apply_filters( 'rpress_service_type', $service_types );
}
我想从中获取值。比如说,是
“送货”还是
“提货”

然后,我需要知道整个代码所指的产品是否设置为
“收货”
“交货”
-每个产品仅分配给这两个值中的一个

所以,在我尝试验证它是否与这两个值中的一个匹配之前,我想我应该在发送给自己的电子邮件中打印出来作为测试。。。看看它是否有效

下面的代码返回值
订单#2262已准备好交付!Arraytest
对我收到的电子邮件进行测试:

function send_customer_purchase_notification_ready( $payment_id, $new_status ) {

    $pickup_or_delivery = rpress_get_service_types( $service_types );
    $order_status = rpress_get_option( $new_status );
    $check_notification_enabled = isset( $order_status['enable_notification'] ) ? true : false;

    if ( !empty( $payment_id ) && $check_notification_enabled && $new_status !== 'pending' && $new_status == 'ready' ) {                  
        $message = 'The order #' .$payment_id. ' is ready for delivery!' .$pickup_or_delivery. 'test';
        $to = 'email@gmail.com';
        $subject = "READY FOR PICKUP";
        $headers = ''; 
        //Here put your Validation and send mail
        $sent = wp_mail($to, $subject, strip_tags($message), $headers);
    }
}
add_action( 'rpress_update_order_status', 'send_customer_purchase_notification_ready' , 10, 2 );
如您所见,我将变量放入了
$message='theorder#'。$payment_id.'已准备好交付!'$收货或送货。”测试'

汇总:此代码显示单词
Array


我已经试着把东西搬来搬去好几个小时了,我觉得自己在撞墙。有什么想法吗?

如您所见,
rpress\u get\u service\u types()
将返回一个数组,因此
$picku\u或\u delivery
是一个数组

您不能连接字符串
订单#2262已准备好交付。
如果需要,可以使用或获取缓冲区内容,将数组转换为字符串

使用以下代码获取“服务类型”:


添加=>
$picku或_delivery['delivery']
用于delivery,添加
$picku或_delivery['delivery']
用于Pickupper请告诉我您是否正在尝试使用此电子邮件和服务进行更具活力的操作。我将为您发布详细的解决方案。嘿,我是这样尝试的(在启用了
$check\u notification\u
之后),但我没有收到添加此内容的电子邮件:
$picku\u或_delivery['delivery'];$picking_或_delivery['picking']好!添加您的建议会在电子邮件中返回值“拾取,传递”,以便数据通过!如何筛选仅“交货”项目?我试过了,但没有收到电子邮件。。所以一定是出了问题:
如果(!empty($payment\u id)&&$check\u notification\u enabled&$new\u status!='pending'&&&$new\u status=='ready'&&&$picku\u delivery!=='picku'&$picku\u delivery=='delivery'){
也尝试了
'delivery'
(关于大写和小写)但我仍然没有收到电子邮件,这让我相信这部分代码是错误的。我实际上是在尝试检索这个特定项目的值。它应该返回
'Pickup'
'Delivery'
,因为一个项目不能同时有这两个。这有意义吗?@MarcioVieyra是的,我只是想回答一下关于“代码显示单词数组”的摘要:)。如果要接收筛选值,必须更新函数以允许某些参数,例如
rpress\u get\u service\u types($type){
并返回筛选后的值
return apply\u filters('rpress\u service\u type',isset($service\u types[$type])?$service\u types[$type]:“”)
并使用正确的参数更新函数调用,例如
$picku\u或\u delivery=rpress\u get\u service\u类型('delivery);
在这种情况下无需内爆$picku\u或\u delivery
$pickup_or_delivery = rpress_get_service_types();

// get the imploded version
$pickup_or_delivery = implode(',', $pickup_or_delivery);

// or get the buffer content
ob_start();
print_r($pickup_or_delivery);
$pickup_or_delivery = ob_get_clean();
$service_type = rpress_get_service_type( $payment_id );