programing

콜백_핸들러는 WooCommerce를 해고하지 않습니다.

bestprogram 2023. 10. 9. 23:27

콜백_핸들러는 WooCommerce를 해고하지 않습니다.

저는 결제가 오프사이트 URL에서 이루어지는 WooCommerce용 결제 게이트웨이를 구축하고 있습니다. WooCommerce 플러그인에 다시 메시지를 보낼 수 있는 페이지가 필요하고 "콜백" URL만 있으면 됩니다.

WooCommerce가 이것을 가지고 있는 것 같은데, 작동이 안 됩니다.당신은 핑을 할 수 있어야 합니다.

http://yoursite/wc-api/WC_your_gateway

그런 다음 add_action('wocommerce_api_callback', 'callback_handler' )을 추가해야 합니다. 그런 다음 이 공용 함수 callback_handler() {}과 같은 함수를 실행해야 합니다.

그러나 해당 URL로 이동하면 내 페이지에 1이 표시됩니다. 즉, 핸들러가 다른 페이지로 리디렉션되어야 합니다(이것이 명확하게 표시되도록 설정한 것입니다).제가 좋아하는 것은 누군가가 이런 일을 하는 예를 가지고 있다면 입니다.저는 add_action과 핸들러 기능을 많은 곳에 배치하려고 했지만, 운이 없었습니다.

저도 같은 문제가 있습니다.콜백 함수의 끝에 exit; 또는 wp_die()를 추가합니다.

저는 이 정도면 돼요.

저도 같은 문제가 있어서, 이게 제게 효과가 있었던 겁니다.

class WC_mygateway extends WC_Payment_Gateway {
  public function __construct() {
    //'woocommerce_api_'.strtolower(get_class($this)) will result in 'woocommerce_api_wc_mygateway'
    add_action('woocommerce_api_'.strtolower(get_class($this)), array(&$this, 'handle_callback'));
  }
  function handle_callback() {
    //Handle the thing here!
  }
}

function woocommerce_mygateway_add_gateway( $methods ) {
  $methods[] = 'WC_mygateway';
  return $methods
}
add_filter( 'woocommerce_payment_gateways', 'woocommerce_mygateway_add_gateway');

자세한 내용을 빠뜨리지 않았는지 확인하십시오. 그렇지 않으면 작동하지 않습니다.http://example.com/ ?wc-api=wc_mygateway 또는 http://example.com/wc-api/wc_mygateway 사용하여 호출할 수도 있습니다.

이 문제로 꼼짝 못하고 있는 모든 사람들에게 이것이 효과가 있기를 바랍니다!

http://your site/wc-api/WC_your_gateway/(마지막에 슬래시 추가)를 사용해 보셨나요?

또한 add_action은 "wocommerce_api_callback" 대신 "wocommerce_api_{class_name}"이어야 합니다.따라서 예를 들어 "wocommerce_api_wc_your_gateway"가 되어야 합니다.

언급URL : https://stackoverflow.com/questions/24066052/callback-handler-wont-fire-woocommerce