我想获取客户可以直接支付发票费用的 URL,并且它应该与wc-cancelled
and wc-transaction-declined
(自定义订单状态).
我的解决方案
我现在正在做的是使用我的自定义获取参数创建一个自定义页面,并将整个付款流程作为网关提供商网站中的文档进行处理。
我的问题
但问题是每当他们更新他们的文档文件和插件时我也必须更新我的代码;但如果我得到Pay NowURL 然后 WooCommerce 和网关插件将处理它。
有更好的解决方案吗?
我在 WooCommerce 中找到了解决方案templates/emails/customer-invoice.php
文件。我正在寻找的功能是get_checkout_payment_url()
.
Usage
$order = wc_get_order($order_id);
$pay_now_url = esc_url( $order->get_checkout_payment_url() );
echo $pay_now_url; //http://example.com/checkout/order-pay/{order_id}?pay_for_order=true&key={order_key}
//http://example.com will be site_url and protocol will depending upon SSL checkout WooCommerce setting.
但这个网址只适用于pending
, failed
订单状态;所以我用了过滤器woocommerce_valid_order_statuses_for_payment
if (!function_exists('filter_woocommerce_valid_order_statuses_for_payment')) {
//http://woocommerce.wp-a2z.org/oik_api/wc_abstract_orderneeds_payment/
//http://hookr.io/filters/woocommerce_valid_order_statuses_for_payment/
// define the woocommerce_valid_order_statuses_for_payment callback
function filter_woocommerce_valid_order_statuses_for_payment( $array, $instance ) {
$my_order_status = array('cancelled', 'transaction-declined');
return array_merge($array, $my_order_status);
}
// add the filter
add_filter('woocommerce_valid_order_statuses_for_payment', 'filter_woocommerce_valid_order_statuses_for_payment', 10, 2);
}
^^ 我将此添加到我的活动主题中functions.php
file.
参考:
- get_checkout_ payment_url() https://docs.woocommerce.com/wc-apidocs/class-WC_Abstract_Order.html#_get_checkout_payment_url
- wc_abstract_orderneeds_ payment http://woocommerce.wp-a2z.org/oik_api/wc_abstract_orderneeds_payment/
- woocommerce_valid_order_statuses_for_ payment http://hookr.io/filters/woocommerce_valid_order_statuses_for_payment/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)