Добрый день, как оказалось плагин не способен начислять поощрение человеку, в момент когда реферал пополняет счёт личного кабинета. Я так понял, он поощряет только совершаемые пользователем платежи за услуги и товары, но не сам факт пополнения счёта.
К сожалению, на сайте нет услуг и товаров в привычном понимании. Имеется только форма пополнения личного счёта через робокассу, платежи реальные. Вот на эти платежи бы и хотелось повесить процент поощрения рефералу.
Какие есть способы решения этой проблемы и кто возьмётся за реализацию?
разместите в файле функций своей темы код
add_action( 'rcl_success_pay_system', 'rfr_payment_balance', 10 ); function rfr_payment_balance($data){ if ( $data->pay_type != 1 ) return false; add_referall_incentive_order($data->user_id,$data->pay_summ); }
данный код должен начислять поощрение партнеру за пополнение им внутреннего баланса, в настройках выставляйте поощрение за оплату заказа
Спасибо за ответ. Разместил этот код в файл активной темы functions.php. В настройках поощрение за оплату заказа не увидел, настроил следующим образом
Меня смущает эта красная полоса сверху, так должно быть? К сожалению, поощрение не прошло, в кабинете приглашённого платёж в 10 рублей засчитало, пользователь числится рефералом в кабинете.
Да. Есть пользователь test, у него реферал test4. Пополнил счёт пользователя test4 на 10 рублей через реальный платёжный гейт робокассы. В счёте test4 платёж отразился. У пользователя test и в базе всех поощрений движений средств не зафиксировано.
что же сразу не сообщили об этом, тогда для вас код будет таким
add_action( 'rcl_success_pay_system', 'rfr_payment_balance', 10 ); function rfr_payment_balance($data){ if ( $payData->pay_type != 'pbu-payment' ) return false; $baggage = $payData->baggage_data; $recipient_id = $baggage->recipient_id; add_referall_incentive_order($recipient_id,$data->pay_summ); }
так пробуйте
add_action( 'pbu_payment', 'rfr_payment_balance', 10 ); function rfr_payment_balance($payData){ if ( $payData->pay_type != 'pbu-payment' ) return false; $baggage = $payData->baggage_data; $recipient_id = $baggage->recipient_id; add_referall_incentive_order($recipient_id,$payData->pay_summ); }
Ну почти получилось, правда пришёл ноль вместо ожидаемых 0.375 (или 0.5) рубля
,
При оплате на сайте фигурирует такой параметр как "коэффициент начисления", который в данном случае при оплате 10 рублей зачисляет пользователю только 7.5 рубля. Возможно обрабатывается не тот параметр и идёт null.
add_action( 'rcl_success_pay', 'pbu_payment', 10 ); function pbu_payment( $payData ) { if ( $payData->pay_type != 'pbu-payment' ) return false; $baggage = $payData->baggage_data; $recipient_id = $baggage->recipient_id; $user_name = $baggage->user_name; $user_phone = $baggage->user_phone; $balance = rcl_get_user_balance( $recipient_id ); $multiplier = get_user_meta( $recipient_id, 'multiplier', 1 ) ? get_user_meta( $recipient_id, 'multiplier', 1 ) : 0.75; $balance += round( $payData->pay_summ * $multiplier, 2 ); rcl_update_user_balance( $balance, $recipient_id, __( 'Оплата' ) );