php - 如何动态更改 Woocommerce 中的 PayPal 地址?

标签 php wordpress paypal woocommerce

我正在尝试更改 Woocommerce 使用的 PayPal 地址,具体取决于它们所在的页面。我目前只有 5 个产品,所有 5 个都需要使用不同的 PayPal 地址。

我发现这个钩子(Hook)可以更改 Paypal 地址,但不太确定如何准确添加它(代码显然是 3 年前的)。

$paypal_args = apply_filters( 'woocommerce_paypal_args', $paypal_args );
add_filter( 'woocommerce_paypal_args' , 'custom_override_paypal_email' );

function custom_override_paypal_email( $paypal_args ) {
    $paypal_args['business'] = 'paypalemail@domain.com';
    print_r( $paypal_args['business'] );
    return $paypal_args;
}

我如何使用此 Hook 根据用户所在的页面/产品更改 Paypal 地址?

最佳答案

我检查并发现 woocommerce_paypal_args 有两个参数,设置和顺序。因此,根据订单,我们可以检查它有什么产品并使用适当的电子邮件。

add_filter( 'woocommerce_paypal_args' , 'custom_override_paypal_email', 10, 2 );

function custom_override_paypal_email( $paypal_args, $order ) {
    foreach ( $order->get_items() as $item ) {
       switch( $item['product_id'] ) {
           case 561:
             $paypal_args['business'] = 'paypalemail1@domain.com';
             break;
           case 562:
             $paypal_args['business'] = 'paypalemail2@domain.com';
             break;
       }
    }

    return $paypal_args;
}

请注意,您必须确保购物车中只能有一件商品。如果购物车中有超过 1 件产品,这将使用 foreach 循环中最后找到的产品。以上代码仅供引用,请相应更改。

关于php - 如何动态更改 Woocommerce 中的 PayPal 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36027159/

相关文章:

php - PHP Codeigniter 中 Uploadify HTTP 302 错误和 IO 错误

php - WordPress - 自定义帖子类型单页上出现 404 错误

html - 是否可以在 HTML 文档中包含多个具有相同 rel ="..."值的链接标记?

php - 如何将类属性设置为 Symfony2 表单输入

php - mysql_query Select 限制在 525 个结果

php - 拉维尔 : How to use eloquent ORM to find information of NOT authenticated user?

php - 从 WooCommerce 结帐页面获取送货地址?

paypal - 如何更新 Paypal 订阅按钮上的信用卡详细信息

PHP mySQL 和 Paypal 结帐程序

paypal - 如何以访客身份启用 Paypal 快速结帐