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

2024-03-25

我正在使用 php cookie 从插件检索 woocommerce 感谢页面和客户订单详细信息页面的值,它在感谢页面上工作正常,但没有在电子邮件订单详细信息页面上打印任何内容,我该如何解决此问题?

我尝试过使用 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, "/");  
 ?>

在thankyou.php 上它打印值

<?php echo $_COOKIE["ticketidno"];?>

email-order-details.php 这里不打印

<?php echo $_COOKIE["ticketidno"];?>

Edit

我想获取并显示 cookie 值:

  1. 电子邮件通知,用于emails/email-order-details.php该钩子上的模板文件:

    do_action( 'woocommerce_email_before_order_table', $order, $sent_to_admin, $plain_text, $email ); ?>
    

    所以在订单表之前。

  2. 短信插件:plugins/woocommerce-apg-sms-notifications/includes/admin/proveedores.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;
    

更换$_COOKIE["ticketidno"]

任何帮助表示赞赏。


Updated

您应该需要在感谢“已收到订单”页面中获取 cookie 值作为自定义订单元数据:

 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"]) );
    }
}

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

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

  1. 来自订单 ID:$cookie = get_post_meta( $order_id, '_cookie_ticketidno', true );
  2. 从订单对象:$order->get_meta( '_cookie_ticketidno' ); // (on 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>';
}

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


在“已收到订单”页面上显示(谢谢):

// 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;
}

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


对于短信 - 由于这需要订单 ID,请尝试以下操作,但无需任何保证:

    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;

代码应该放在插件中的provedores.php 文件中,只需在代码中替换:

$_COOKIE["ticketidno"]

by:

get_post_meta( $_SESSION['ID'], '_cookie_ticketidno', true )

where $_SESSION['ID'] (我想并且我希望)应该订单 ID.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取 Woocommerce 电子邮件通知中的 cookie 值? 的相关文章

随机推荐

  • 删除文本文件中的一行

    好的 我尝试从文件中删除包含 的行 该文件如下所示 Lorem ipsum Text 我的代码 f File open C websites ahr txt f each line do line if line include a lin
  • Scala import 语句位于 scala 类的顶部和内部

    在scala中这两种导入策略有什么区别 Option 1 import com somepackage class MyClass further code Option 2 class MyClass import com somepac
  • 我可以更改 apk 的版本代码吗?

    我为 Android 构建了一个应用程序 并且已经将其导出为 apk 如果已经导出 我可以更改其版本代码吗 我怎样才能做到这一点 我丢失了备份代码 我只有更新版本 需要返回第一个版本 我唯一能做的就是从 apk 备份中增加版本代码 然后我的
  • php中计算每个子数组中的元素

    一个例子来自php net http php net manual en function count php提供以下内容 如何独立于 food 数组 输出 3 获取水果和蔬菜的数量 你可以这样做 e
  • 当 Flexbox 项目以列模式换行时,容器不会增加其宽度

    我正在研究一个嵌套的弹性盒布局 它应该按如下方式工作 最外层 ul main 是一个水平列表 当向其中添加更多项目时 该列表必须向右扩展 如果它变得太大 应该有一个水平滚动条 main display flex flex direction
  • maven2:从 WAR 中排除目录

    I tried this http maven apache org plugins maven war plugin examples adding filtering webresources html从我的 WAR 文件中排除整个目录
  • 查找将一个 NumPy ndarray 的行映射到另一个 NumPy ndarray 的一组索引

    我有两个结构化的 2Dnumpy数组是equal原则上 意义 A numpy array a1 b1 c1 a2 b2 c2 a3 b3 c3 a4 b4 c4 B numpy array a2 b2 c2 a4 b4 c4 a3 b3 c
  • 在 React 中将类组件转换为函数式组件

    我正在学习 React hooks 因此为了做到这一点 我尝试将类组件转换为函数组件 但我仍然遇到一些错误 这是作为类编写的原始工作组件 import React Component from react import NavBar fro
  • Restkit:迁移到 0.20

    我正在尝试迁移到 RestKit 0 20 pre2 目前我设法迁移我的映射 至少编译器不再抱怨 但我在创建请求时遇到问题 之前我使用了不再存在的 RKObjectLoader 我之前的代码如下 RKObjectLoader objectL
  • 如何从 Cassandra 获取排序计数器

    我有一排计数器 我想让它的列按值排序 有什么策略或数据模型吗 恐怕没有办法让 Cassandra 为你做这件事 您需要从 Cassandra 获取整行 对大行进行分页 并在客户端中对其进行排序 如果您的解决方案可以处理非最新结果 您可以使用
  • R 中的 na.strings = c()

    我是 R 新手并开始探索na strings c 函数与read csv 我已经读到 使用此选项 所有缺失的值将被替换为 NA 但我在我的文件中没有看到这种情况发生 尽管使用了 但我没有看到输出有任何差异na strings c 如果我遗漏
  • 如何删除由 addEventListener 以事件对象作为参数绑定的匿名函数

    例如 document addEventListener keyup function ev if ev ctrlKey dosomething false 有什么办法可以去掉匿名函数吗 你可以自己写一个小接口addEventListene
  • tinymce 4 如何添加事件处理程序

    在tinymce 3中 我们似乎可以这样做 Adds a click handler to the current document tinymce dom Event add document click function e conso
  • Angular:延迟加载模块重新加载时重置服务状态

    我的申请中关于服务的结构如下 AppModule AppComponent and HomeComponent Lazy1 Lazy2 Lazy3 我的应用程序从 AppComponent 开始 它重定向到 HomeComponent 然后
  • 正则表达式不以数字开头

    如何创建一个匹配所有开头不带数字的字母数字的正则表达式 现在我有 0 9 a zA Z0 9 例如 1ab 不匹配 ab1 匹配 1 bc 不匹配 bc 1 匹配 你所写的内容存在三处错误 首先 要否定一个字符类 您可以将 inside括号
  • 雪花中有保存或加载工作表的选项吗?

    雪花中有保存或加载工作表的选项吗 或者将工作表下载到本地并从本地加载 我的意思不是通过剪贴板将其粘贴到某些文本编辑器并保存这样的选项 Snowflake 会自动保存您的工作表 您还可以将脚本从本地加载到工作表 但是无法下载工作表 Saved
  • QOpenGLWidget显示黑屏

    我尝试了此处描述的 QOpenGLWidget 示例 https stackoverflow com a 31524956 4564882 https stackoverflow com a 31524956 4564882 但我只得到一个
  • 使用IDLE时的工作目录是什么?

    所以 我正在学习 Python 想创建一个简单的脚本来从互联网下载文件 然后将其写入文件 但是 我正在使用 IDLE 并且不知道 IDLE 中的工作目录是什么或如何更改它 如果我不知道工作目录或如何更改它 如何在 IDLE 中执行文件系统操
  • 如何识别“hw.machine”标识符可靠?

    我正在寻找最官方的来源来完成 维护此方法 NSString platformString NSString platform self platform if platform isEqualToString iPhone1 1 retur
  • 如何获取 Woocommerce 电子邮件通知中的 cookie 值?

    我正在使用 php cookie 从插件检索 woocommerce 感谢页面和客户订单详细信息页面的值 它在感谢页面上工作正常 但没有在电子邮件订单详细信息页面上打印任何内容 我该如何解决此问题 我尝试过使用 php 会话获取值 它仅打印