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 如何在Woocommerce电子邮件通知中获取cookie值?_Php_Wordpress_Cookies_Woocommerce_Email Notifications - Fatal编程技术网

Php 如何在Woocommerce电子邮件通知中获取cookie值?

Php 如何在Woocommerce电子邮件通知中获取cookie值?,php,wordpress,cookies,woocommerce,email-notifications,Php,Wordpress,Cookies,Woocommerce,Email Notifications,我正在使用php cookies从woocommerce Thankyu页面和customer order detail页面的插件中检索一个值,它在Thankyu页面上运行良好,但在email order detail页面上没有打印任何内容,我该如何解决这个问题 我尝试过使用php会话获取值,它只打印10到15分钟的值,之后它不会打印任何内容,有人能帮我使用php cookie检索值吗 我想从这里取回邮政ID <?php if('on' == $display_ticket_num

我正在使用php cookies从woocommerce Thankyu页面和customer order detail页面的插件中检索一个值,它在Thankyu页面上运行良好,但在email order detail页面上没有打印任何内容,我该如何解决这个问题


我尝试过使用php会话获取值,它只打印10到15分钟的值,之后它不会打印任何内容,有人能帮我使用php cookie检索值吗

我想从这里取回邮政ID

  <?php
  if('on' == $display_ticket_number){
        echo '#' . $post->ID . ' ';
  }

  echo $post->post_title; 

 $ticketid = $post->ID; 
 setcookie ("ticketidno",$ticketid, time() +60, "/");  
 ?>
所以在下订单之前

  • 文本短信插件:
    plugins/woocommerce apg短信通知/includes/admin/provederes.php

    case "solutions_infini":
        $respuesta = wp_remote_get( "http://api-global.solutionsinfini.com/v3/?api_key=" . $apg_sms_settings['clave_solutions_infini'] . "&method=sms" . "&to=" . $telefono . "&sender=" . $apg_sms_settings['identificador_solutions_infini'] . "&message=" . "Thanks for Registering in ". $_SESSION['post_title'] . " your Registration ID no is THR". $_COOKIE["ticketidno"] . apg_sms_codifica_el_mensaje( $mensaje ));
        break;
    
  • 替换
    $\u COOKIE[“ticketidno”]


    感谢您的帮助。

    已更新

    您应该需要在Thankyu“order received”页面中获取cookie值作为自定义订单元数据:

    代码位于活动子主题(或活动主题)的function.php文件中。它应该有效

    您将能够使用以下方法获取此抓取的cookie值:

  • 从订单ID:
    $cookie=get_post_meta($Order_ID,'u cookie_ticketino',true)
  • 从订单对象:
    $Order->get_meta(''u cookie_ticketino');//(关于Woocommerce 3+)

  • 在电子邮件通知中显示:

    // Email notifications display
    add_action( 'woocommerce_email_order_details', 'add_order_instruction_email', 5, 4 );
    function add_order_instruction_email( $order, $sent_to_admin, $plain_text, $email ) {
        if( $value = $order->get_meta('_cookie_ticketidno') )
            echo '<p class="ticket-id">' .__('Ticket Id Number: ') . $value . '</p>';
    }
    
    代码应该放在插件中的proveedores.php文件中,只需在代码中替换:

    $_COOKIE["ticketidno"]
    
    作者:


    其中,
    $\u SESSION['ID']
    (我想也是我希望)应该是订单ID

    如果我是你,我会使用SESSION变量,因为用户可以禁用cookie。在这种情况下,整个函数将无法工作。也许还有什么东西可以删除cookies。因此,请尝试使用$_SESSION['']我尝试过使用php会话获取值,它只打印10到15分钟的值,之后它不会打印任何内容。因此,有一个函数或其他东西可以结束/清除您的会话、cookie和所有内容。看起来很紧张。可以是所有内容。我尝试了两者,但它甚至在thankyou.php页面上也没有打印任何内容。正如我所看到的,值保存在wp_Posteta数据库表中的_cookie_TicketIno meta_键下,但我无法在任何带有给定代码的页面上打印它们。你们能帮我打印吗?第一个代码对我有用,第二个代码不能在数据库中保存值。我想打印两页:1。wp content/plugins/woocommerce/templates/email/email-order-details.php 2)。wp-content/plugins/woocommerce-apg-sms-notifications/includes/admin/provederes.php第二个用于sms文本。
    case "solutions_infini":
        $respuesta = wp_remote_get( "http://api-global.solutionsinfini.com/v3/?api_key=" . $apg_sms_settings['clave_solutions_infini'] . "&method=sms" . "&to=" . $telefono . "&sender=" . $apg_sms_settings['identificador_solutions_infini'] . "&message=" . "Thanks for Registering in ". $_SESSION['post_title'] . " your Registration ID no is THR". $_COOKIE["ticketidno"] . apg_sms_codifica_el_mensaje( $mensaje ));
        break;
    
     add_action( 'woocommerce_thankyou', 'thankyou_grab_cookie_as_meta_data', 10, 1 );
    function thankyou_grab_cookie_as_meta_data( $order_id ){
        if( ! $order_id ){
            return;
        }
    
        if( isset($_COOKIE["ticketidno"]) && ! get_post_meta( $order_id, '_cookie_ticketidno', true ) ) {
            update_post_meta( $order_id, '_cookie_ticketidno', esc_attr($_COOKIE["ticketidno"]) );
        }
    }
    
    // Email notifications display
    add_action( 'woocommerce_email_order_details', 'add_order_instruction_email', 5, 4 );
    function add_order_instruction_email( $order, $sent_to_admin, $plain_text, $email ) {
        if( $value = $order->get_meta('_cookie_ticketidno') )
            echo '<p class="ticket-id">' .__('Ticket Id Number: ') . $value . '</p>';
    }
    
    // On "Order received" page (on start)
    add_filter( 'woocommerce_thankyou_order_received_text', 'thankyou_custom_order_received_text', 10, 2 );
    function thankyou_custom_order_received_text( $text, $order ) {
        if ( $value = $order->get_meta('_cookie_ticketidno') ) {
            $text .= '<br><div class="ticket-id"><p>' . __('Ticket Id Number: ') . $value . '</p></div>' ;
        }
        return $text;
    }
    
        case "solutions_infini":
    
            $respuesta = wp_remote_get( "http://api-global.solutionsinfini.com/v3/?api_key=" . $apg_sms_settings['clave_solutions_infini'] . "&method=sms" . "&to=" . $telefono . "&sender=" . $apg_sms_settings['identificador_solutions_infini'] . "&message=" . "Thanks for Registering in ". $_SESSION['post_title'] . " your Registration ID no is THR". get_post_meta( $_SESSION['ID'], '_cookie_ticketidno', true ) . apg_sms_codifica_el_mensaje( $mensaje ));
            break;
    
    $_COOKIE["ticketidno"]
    
    get_post_meta( $_SESSION['ID'], '_cookie_ticketidno', true )