Как динамически изменять адрес PayPal в Woocommerce?

Я пытаюсь изменить адрес PayPal, который использует Woocommerce, в зависимости от того, на какой странице они находятся. На данный момент у меня всего 5 продуктов, и все 5 должны использовать другой адрес PayPal.

Я нашел этот крючок, который может изменить адрес 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; } 

Как я могу использовать этот крючок для изменения адреса 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 . Вышеприведенный код предназначен только для руководства, пожалуйста, измените его.