WooCommerce에서 맞춤 주문 상태로 Pay Now URL을 얻는 방법은?
고객이 인보이스 비용을 직접 지불할 수 있는 URL을 구하고자 합니다.wc-cancelled
그리고.wc-transaction-declined
(사용자 지정 주문 상태).
마이 솔루션
제가 지금 하고 있는 일은 사용자 정의 가져오기 매개변수를 사용하여 사용자 정의 페이지를 만들고 게이트웨이 공급자 웹 사이트에서 전체 결제 프로세스를 설명서로 처리하는 것입니다.
나의 문제
그러나 문제는 그들이 문서 파일과 플러그인을 업데이트할 때마다 코드를 업데이트해야 한다는 것입니다. 하지만 페이 나우 URL을 받으면 WooCommerce와 Gateway Plugin이 처리할 것입니다.
더 좋은 해결책이 있습니까?
WooCommerce에서 솔루션을 얻었습니다.templates/emails/customer-invoice.php
파일. 제가 찾던 기능은get_checkout_payment_url()
.
사용.
$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.
그러나 이 URL은 다음과만 작동합니다.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
파일.
참조:
아래 코드로 url을 받을 수 있지만 order_id 또는 post_id의 도움을 받아 wc-pending status order에만 적용됩니다.
$order = wc_get_order($order_id);
echo $pay_now_url = $order->get_checkout_payment_url();
언급URL : https://stackoverflow.com/questions/40880509/how-to-get-pay-now-url-with-custom-order-status-in-woocommerce
'source' 카테고리의 다른 글
Oracle로 Ruby on Rails를 구성하는 방법은 무엇입니까? (0) | 2023.09.11 |
---|---|
표시와 함께 입력: 블록은 블록이 아닙니다. 왜 안 됩니까? (0) | 2023.09.11 |
별도의 스레드 풀에서 실행되는 스프링 부트 액추에이터 (0) | 2023.09.11 |
CSS 확인란 입력 스타일 (0) | 2023.09.11 |
하나의 mysql 데이터베이스에서 다른 mysql 데이터베이스로 테이블을 복사하는 방법 (0) | 2023.09.11 |