我的网站允许客户购买订阅计划。它使用Woocommerce引导客户向Paypal付款。
在Paypal中,“订阅详细信息”如下所列:
Subscription 1524(订单1522)-SimplyGram-高级计划
如何从订阅详细信息中完全删除“订阅1524(订单1522)-”?
我一直在寻找woocommerce挂钩,以解决此问题。发现here的woocommerce php钩子非常有用。在对所有的钩子进行排序之后,似乎最接近我想要的钩子是woocommerce_paypal_get_order_item_name
。
我在php中实现解决方案的尝试如下:
add_filter( 'woocommerce_paypal_get_order_item_name', $item_name, $order, $item );
function change_paypal_description( $item_name, $order, $item) {
return 'test';
}
但是,这似乎并不能解决问题。我认为很可能是我尝试使用错误的钩子?任何帮助将不胜感激!
答案 0 :(得分:0)
您没有为woocommerce_paypal_get_order_item_name
使用正确的方法,因此您的代码无法按原样工作。尝试以下方法:
add_filter( 'woocommerce_paypal_get_order_item_name', 'change_paypal_item_name', 10, 3 );
function change_paypal_item_name( $item_name, $order, $item ) {
return 'test';
}
或定位“订阅”产品类型:
add_filter( 'woocommerce_paypal_get_order_item_name', 'change_paypal_item_name', 10, 3 );
function change_paypal_item_name( $item_name, $order, $item ) {
// get an instance of the WC_Product object
$product = $item->get_product();
// Target subscriptions type
if( $product->is_type( 'subscription' ) )
$item_name = 'test';
return $item_name;
}
代码进入您的活动子主题(或活动主题)的function.php文件中。应该可以。
还有另外两个过滤器挂钩,您可以将它们专门用于Paypal来更改发送的详细信息:
woocommerce_paypal_args
具有2个参数:$args
和$order
woocommerce_paypal_line_item
,具有5个参数$ item,$ item_name,$ quantity,$ amount和$ item_number。第一个允许更改订单详细信息,第二个允许更改订单项目详细信息,然后再将数据发送到网关。
StackOverFlow上woocommerce_paypal_args
的相关线程。