Wordpress/Woocommerce:以编程方式创建订单后,我还想以编程方式发送发票...如何?

2024-05-26

所以,我的网站涉及一个预订系统,流程如下:

  1. 客人选择预订产品的日期(地点)。
  2. 提交请求后,系统会向主机发送一条消息以供审核。
  3. 如果接受,我希望订单由客人支付。 // 我的问题在这里

我已成功创建订单。理想情况下,我希望能够将客人发送到他们的“购物车”页面,并附上他们所下的预订订单(仅在房东批准预订之后)。这样,除了主机最初的接受或拒绝之外,一切都可以由 WooCommerce 处理。

问题:

  1. 此流程开始时(步骤 1),我是否需要将订单添加到用户的购物车?如果是这样,在房东批准订单之前我如何禁用付款?

Code:

在初始预订页面:

$y_booking_order = wc_create_order();
$y_booking_order->add_product( get_product( $san_y_id ), $san_num_days);
$y_booking_order->calculate_totals();
$y_booking_order->update_status('on-hold');
update_post_meta($y_booking_order->id, '_arrival_date', $san_date_arr);
update_post_meta($y_booking_order->id, '_departure_date', $san_date_dep);
update_post_meta($y_booking_order->id, '_request_sender', $san_user_id);
update_post_meta($y_booking_order->id, '_customer_user', get_current_user_id());
// do I add to cart here? If so, how to stop guest from paying until after host approves?

到目前为止,订单创建后,我只是让主持人将订单状态从“暂停”更改为“待处理”。现在我只想让客人付钱...

想法?


如果您没有收集某种预授权,则状态应为“待处理”。

就发送发票而言,深入研究 WooCommerce 的代码并对其进行一些重组以削减脂肪会产生以下功能,这应该允许您以与您告诉它相同的方式以编程方式发送发票电子邮件编辑订单时从菜单发送发票:

function send_invoice_email($post_id) {
    $order = wc_get_order($post_id);

    wc_switch_to_site_locale();

    do_action('woocommerce_before_resend_order_emails', $order);

    // Ensure gateways are loaded in case they need to insert data into the emails.
    WC()->payment_gateways();
    WC()->shipping();

    // Load mailer.
    $mailer = WC()->mailer();
    $email_to_send = 'customer_invoice';
    $mails = $mailer->get_emails();

    if (!empty($mails)) {
        foreach ($mails as $mail) {
            if ($mail->id == $email_to_send) {
                $mail->trigger($order->get_id(), $order);
                $order->add_order_note( sprintf( __('%s email notification manually sent.', 'woocommerce'), $mail->title), false, true);
            }
        }
    }

    do_action('woocommerce_after_resend_order_email', $order, $email_to_send);

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

Wordpress/Woocommerce:以编程方式创建订单后,我还想以编程方式发送发票...如何? 的相关文章

  • 高级自定义字段 - WordPress

    在使用时自定义字段插件 我无法让它返回任何数据 我创建了一个名为的字段组book cover thumbnail其中有一篇文章链接到它 谁能明白为什么下面的代码不起作用 img src 我完全没有收到任何错误 没有空格 确保您 a 使用以下
  • Wordpress 编辑器中的“application/gas-events-abn”对象是什么?

    我正在使用 Wordpress 创建博客 我注意到当我多次保存帖子时 代码中会出现一个奇怪的元素 在帖子底部创建一个大的空白区域 代码如下所示 post content nbsp 每次我编辑帖子时 我都必须将其删除 Joomla 有时也会发
  • 联系表 7 根据用户选择立即发送给多个联系人

    您好 我正在 WordPress 联系表单 7 中创建联系表单 如果用户选择 全部 我想立即向多个收件人发送电子邮件 我看过这个 但似乎没有记录您是否可以一次发送给多个收件人http contactform7 com selectable
  • 在订单编辑页面添加自定义元框并将其显示在客户订单页面上

    在 WooCommerce 中 想要在 WooCommerce 管理订单页面上添加自定义元框 在此框中 我只想在保存到该订单的文本字段中输入跟踪号码 然后在客户查看订单页面上 我想显示一个按钮 用于打开带有跟踪信息的模式 该模式只会拉入一个
  • 删除页面上的 Yoast WordPress SEO

    我正在尝试删除某个页面上的 Yoast WordPress SEO 因为它与另一个插件冲突 我尝试将下面的代码添加到我的functions php中 但它似乎不起作用 感谢任何帮助 谢谢 function remove wpseo if i
  • wp_mail(Wordpress 邮件功能)未发送到 gmail 或 live.co.uk 帐户

    我有一个网站 允许访问者通过两种方式联系我 通过其自己页面上的联系表单和侧边栏中的 ajax 小型联系表单 两种联系方式都会向我的 Gmail 帐户发送电子邮件 它自己页面上的联系表单工作正常 但ajax表单不会发送到gmail 也不会发送
  • 从帖子 ID 获取类别名称

    是否可以获取给定帖子 ID 的类别的类别名称 以下代码可以获取类别 Id 但如何获取名称 Thank 干得好get the category post gt ID 将返回您需要循环遍历该帖子的类别数组 category detail get
  • 在 wp_query 中结合关键字搜索和税务查询

    我一直在尝试创建自定义搜索查询 并且已经取得了一些进展 但遇到了另一个障碍 我试图将 wp query 中的meta query 关键字搜索 s 和tax query 与 OR 关系结合起来 感谢这篇精彩的文章 我已经让 meta quer
  • .htaccess HTTPS 主域和通配符 HTTP 子域 + 所有非 WWW

    Stack Overflow 上有很多类似的解决方案 例如htaccess http 到 https 带 www 不重定向子域 https stackoverflow com questions 30242495 htaccess http
  • 测试 WP_Query 对象是否为空

    如何测试 WP Query 对象是否未返回任何匹配项 我希望能够做这样的事情 这是一个模板 EDIT 更好的例子 我只想在查询找到任何内容时才显示 h2
  • 获取 Woocommerce 单一产品页面中的产品类别名称和描述

    我一直在使用 WooCommerce Codex 但我似乎无法显示数据 我只想显示产品类别和描述 以在我自己的自定义布局的单个产品页面上显示 如下所示 由于一个产品可以有多个产品类别 因此您需要使用 foreach 循环 这 term变量是
  • 在 Woocommerce 结帐中启用特定状态的交货时间选项

    基于 在 WooCommerce 结帐中添加自定义复选框 其值显示在管理员编辑订单中 https stackoverflow com questions 45905237 add a custom checkbox in woocommer
  • ContactForm7 在提交时显示 POST 和 GET 错误 WordPress Woocommerce 网站

    我最近开发并部署了一个 WordPress woocommerce 网站 在我将该网站放在其域上后 出现了一个奇怪的错误弹出窗口 此前它致力于开发子域 我面临 ContactForm7 提交问题 当有人想要提交 contactform7 时
  • 为什么我需要在 single.php 中使用 wp 循环

    在WordPress主题开发中我们可以使用single php显示具体的单个帖子 为此 通常的做法是 为什么我需要循环显示单个帖子 任何人都可以给出一些合理的理由吗 这是困扰我多年的事情 我找到了答案 不 您不需要在单页中使用 LOOP 您
  • nginx + WordPress:SFTP + 自动更新的适当用户/文件权限?

    I used this http wordimpress com aws ec2 rds s3 cloudfront nginx wordpress tutorial roundup 在 Ubuntu VPS 上安装 nginx 和 Wor
  • WooCommerce 使用 AJAX 设置购物车数量?

    我已经为此绞尽脑汁好几天了 需要一些指导 我正在为 WooCommerce 网站完全从头开始制作自定义主题 现在我正在尝试让购物车功能正常工作 我一直试图使用按钮 来更新购物车中产品的数量 对我来说问题似乎是WC 我在functions p
  • 使用 Timber 插件时,wordpress 简单的短代码不会呈现

    我最近接管了一个使用 Timber 我不熟悉 的 WordPress 网站的开发 我正在尝试使用新的插件和随附的短代码 但这当然不起作用 我已经研究这个问题几个小时了 似乎没有一个简单的答案 为了使用像这样的简单短代码 sp faq类别 7
  • WordPress 分页自定义帖子类型

    我有一个名为 新闻 的页面 使用页面模板page newslist php 它应该显示来自自定义帖子类型 也称为新闻 的帖子 我意识到两者具有相同的名称会导致问题 因此在注册自定义帖子类型时 我进行了重写以将其与页面区分开来 rewrite
  • Woocommerce - 正在销售的产品显示 1 页而不是 4 页

    我有 44 种产品在售 当我输入 WooCommerce 短代码时 sale products per page 12 我只收到 12 件促销产品 即 1 页而不是 4 页 怎么了 我在用着 可湿性粉剂 4 4 1 WC 2 5 1 神秘的
  • 联系表格 7 自动添加 p 标签

    我在联系表单 7 编辑器中有下一个代码 div class row div class col sm 8 col sm offset 2 div class row div class col sm 4 text name class bo

随机推荐

  • 如何在 Mongoose 中定义排序函数

    我正在开发一个小型 NodeJS Web 应用程序 使用 Mongoose 访问我的 MongoDB 数据库 我的收藏的简化架构如下 var MySchema mongoose Schema content type String loca
  • ASP.Net 将 401 错误代码转换为 302 错误代码

    我有一个自定义处理程序 在某些情况下 我想向用户代理表明他们未获得授权 Http 错误代码 401 if IsAuthorized context context Response StatusCode 401 context Respon
  • 使用表达式树构造 LINQ GroupBy 查询

    我已经在这个问题上坚持了一个星期了 但没有找到解决方案 我有一个像下面这样的 POCO public class Journal public int Id get set public string AuthorName get set
  • PHP/PDO 和 SQL Server 连接以及 i18n 问题

    在我们的网络应用程序中 我们使用 PHP5 2 6 PDO 连接到 SQL Server 2005 数据库并存储俄语文本 数据库排序规则是Cyrillic General CI AS 表排序规则是Cyrillic General CI AS
  • VB6 ActiveX exe - 正确的注册顺序是什么?

    我最近更新了一个 Visual Basic 6 应用程序 它是一个 ActiveX exe 在 Windows XP 上运行 我有几个此应用程序的测试人员 他们已收到 exe 的副本并正在尝试运行它 但是 他们收到一条错误消息 Unexpe
  • 从 Redux 状态删除一个项目

    我想知道如果可能的话你是否能帮我解决这个问题 我正在尝试从 Redux 状态中删除一个项目 我已经传入了用户点击的项目的IDaction data进入减速机 我想知道如何匹配action data使用 Redux 状态中的 ID 之一 然后
  • 从 UIScrollView 中删除所有子视图?

    如何从 UIScrollview 中删除所有子视图 Let scrollView是一个实例UIScrollView 在 Objective C 中 这非常简单 只需致电makeObjectsPerformSelector 像这样 Objec
  • SQL Server 2005 中的计数(*) 与计数(Id)

    我使用 SQLCOUNT函数获取表中的总数或行数 以下两种说法有什么区别吗 SELECT COUNT FROM Table and SELECT COUNT TableId FROM Table 另外 在性能和执行时间方面有什么区别吗 Th
  • 设置 MySQL 触发器

    我听说过有关触发器的事情 我有几个问题 什么是触发器 我该如何设置它们 除了典型的 SQL 内容之外 是否还应该采取任何预防措施 触发器允许您在发生某些事件 例如 插入表 时在数据库中执行某个功能 我无法具体评论mysql 注意事项 触发器
  • 在字符串数组中查找下一个可用日期

    我一直在尝试找出如何根据当前日期获取下一个可用日期 即 如果今天是星期五 则在数组中搜索下一个最近的日期 例如数组值为 1 星期一 2 星期二 4 星期四 6 星期六 那么我的第二天应该是星期六 这是我尝试过的 Here i ll get
  • RecyclerView 上的删除按钮删除了错误的项目

    我正在使用 Firestore 适配器RecyclerView我在使用 删除 按钮时遇到问题 当我按下它时 它会删除错误的项目 而不是我想要的项目 这是我的按钮内部的代码onBindViewHolder protected void onB
  • 了解单目标迷宫的 A* 启发式

    我有一个像下面这样的迷宫 P
  • 传说在北卡罗来纳州地理地图上消失?

    我正在使用 R 编程语言 使用北卡罗来纳州的内置地图 我生成了 3 个随机变量 收入 孩子数量 体重 然后为此数据创建了地图 使用 传单 库 通过循环 library sf library mapview library leaflet l
  • jQuery Mobile 1.4.0:动态更改页面的标题和标题

    动态更改 jQuery Mobile 1 4 0 页面的标题 data role header 和 title 的正确方法是什么 添加方法有很多种toolbars 页眉 页脚 动态 此外 jQuery Mobile 1 4 提供intern
  • 检测堆栈已满

    在编写 C 代码时 我了解到使用堆栈来存储内存是一个好主意 但最近我遇到了一个问题 我有一个实验 其代码如下所示 void fun const unsigned int N float data 1 N N float data 2 N N
  • python:将base64编码的png图像转换为jpg

    我想使用 python 将一些 base64 编码的 png 图像转换为 jpg 我知道如何从 Base64 解码回原始 import base64 pngraw base64 decodestring png b64text 但现在我怎样
  • 土耳其语字符显示不正确[重复]

    这个问题在这里已经有答案了 MySql 数据库使用 utf 8 编码 数据存储正确 我使用 set name utf8 查询来确保调用的数据是 utf 8 编码 只要标头字符集是 utf 8 数据库中的所有变量都可以正常工作 但静态html
  • 无需发送消息即可获取 GCM 规范注册 ID

    我在使用 GCM 的应用程序时遇到问题 情况如下 该应用程序已安装 应用程序调用 GCM 注册方法获取注册 ID RID 1 该应用程序已卸载 再次安装该应用程序 应用程序再次调用 GCM 注册方法 获取注册 ID RID 2 在第 5 步
  • 如何在张量流中使用带有估计器的衰减学习率?

    我正在尝试将 LinearClassifier 与具有衰减学习率的 GradientDescentOptimizer 一起使用 My code def main load data features np load data feature
  • Wordpress/Woocommerce:以编程方式创建订单后,我还想以编程方式发送发票...如何?

    所以 我的网站涉及一个预订系统 流程如下 客人选择预订产品的日期 地点 提交请求后 系统会向主机发送一条消息以供审核 如果接受 我希望订单由客人支付 我的问题在这里 我已成功创建订单 理想情况下 我希望能够将客人发送到他们的 购物车 页面