#php #wordpress #woocommerce #paypal
#php #wordpress #woocommerce #paypal
Вопрос:
Я ищу решение своей проблемы. Я хотел бы изменить адрес электронной почты PayPal на основе общего количества заказов WooCommerce.
Итак, если общая сумма заказа составляет <10$
- Получатель PayPal = paypalemail1@domain.com
Ещё
- Получатель PayPal = paypalemail2@domain.com
Я попытался выполнить поиск здесь, и единственным кодом, который я нашел, был этот:
add_filter( 'woocommerce_paypal_args', 'woocommerce_paypal_args', 10, 2 );
function woocommerce_paypal_args( $paypal_args, $order ) {
//Get the customer ID
$user_id = $order->get_user_id();
// Get the user data
$user_data = get_userdata( $customer_id );
// Adding an additional recipient for a custom user role
if ( in_array( 'wholesale_customer', $user_data->roles ) )
$paypal_args['business'] = 'email@email.com';
return $paypal_args;
}
Но здесь все зависит не от общего количества заказов WooCommerce, а от роли пользователя. Есть ли какой-нибудь способ персонализировать его?
Ответ №1:
woocommerce_paypal_args
имеет два аргумента: настройки и $order
объект. Таким образом, на основе заказа мы можем получить общую сумму и на основе этого изменить адрес электронной почты
function filter_woocommerce_paypal_args( $paypal_args, $order ) {
// Get total
$order_total = $order->get_total();
// Less then 10
if ( $order_total < 10 ) {
$paypal_args['business'] = 'paypalemail1@domain.com';
} else {
$paypal_args['business'] = 'paypalemail2@domain.com';
}
return $paypal_args;
}
add_filter( 'woocommerce_paypal_args', 'filter_woocommerce_paypal_args', 10, 2 );