在Woocommerce中更改Paypal产品项名称

时间:2018-11-27 16:32:23

标签: php wordpress woocommerce paypal hook-woocommerce

我的网站允许客户购买订阅计划。它使用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';
}

但是,这似乎并不能解决问题。我认为很可能是我尝试使用错误的钩子?任何帮助将不胜感激!

1 个答案:

答案 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来更改发送的详细信息:

第一个允许更改订单详细信息,第二个允许更改订单项目详细信息,然后再将数据发送到网关。

StackOverFlow上woocommerce_paypal_args的相关线程。