gpt4 book ai didi

Wordpress/Woocommerce : After creating order programmatically, 我还想以编程方式发送发票...如何?

转载 作者:行者123 更新时间:2023-12-05 05:20:06 33 4
gpt4 key购买 nike

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

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

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

问题:

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

代码:

在初始预订页面上:

$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();
}

关于Wordpress/Woocommerce : After creating order programmatically, 我还想以编程方式发送发票...如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45003055/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com