get_items() as $item) { $product_id = $item->get_product_id(); // ╨Я╤А╨╛╨▓╨╡╤А╤П╨╡╨╝ ╤З╨╡╤А╨╡╨╖ ╨╝╨╡╤В╨╛╨┤ ╨╕╨╖ ╨╜╨░╤И╨╡╨│╨╛ ╨┐╨╗╨░╨│╨╕╨╜╨░ if (class_exists('Animago_Subscription_Product')) { if (Animago_Subscription_Product::is_subscription_product($product_id)) { $is_subscription_order = true; $subscription_settings = Animago_Subscription_Product::get_subscription_settings($product_id); break; } } } // ╨Х╤Б╨╗╨╕ ╤Н╤В╨╛ ╨┐╨╛╨┤╨┐╨╕╤Б╨║╨░, ╨┤╨╛╨▒╨░╨▓╨╗╤П╨╡╨╝ ╨┐╨░╤А╨░╨╝╨╡╤В╤А╤Л ╤А╨╡╨║╤Г╤А╤А╨╡╨╜╤В╨╜╨╛╨│╨╛ ╨┐╨╗╨░╤В╨╡╨╢╨░ if ($is_subscription_order && $subscription_settings) { $period_days = $subscription_settings['period_days']; // ╨Ф╨░╤В╨░ ╨╛╨║╨╛╨╜╤З╨░╨╜╨╕╤П ╨▓ ╤Д╨╛╤А╨╝╨░╤В╨╡ YYYYMMDD if ($subscription_settings['length'] > 0) { $expiry = date('Ymd', strtotime("+{$subscription_settings['length']} months")); } else { // ╨С╨╡╤Б╤Б╤А╨╛╤З╨╜╨░╤П тАФ ╤Б╤В╨░╨▓╨╕╨╝ +3 ╨│╨╛╨┤╨░ $expiry = date('Ymd', strtotime('+3 years')); } // === ╨Т╨Р╨Ц╨Э╨Ю: recurringFrequency ╨╕ recurringExpiry ╨╕╨┤╤Г╤В ╨Т╨Э╨г╨в╨а╨Ш jsonParams === // (╤Б╨╝. ╨┐╤А╨╕╨╝╨╡╤А ╨╕╨╖ ╨┤╨╛╨║╤Г╨╝╨╡╨╜╤В╨░╤Ж╨╕╨╕ ╨Р╨╗╤М╤Д╨░-╨С╨░╨╜╨║╨░: // jsonParams={"recurringExpiry":"20241231","recurringFrequency":"10"}) $jsonParams = []; if (!empty($args['jsonParams'])) { $jsonParams = json_decode($args['jsonParams'], true) ?: []; } $jsonParams['recurringFrequency'] = strval($period_days); $jsonParams['recurringExpiry'] = $expiry; $args['jsonParams'] = json_encode($jsonParams); // === ОТКЛЮЧАЕМ СБП/QR ДЛЯ ПОДПИСОК — ТОЛЬКО ОПЛАТА КАРТОЙ === // Параметр features=FORCE_FULL_TDS требует полную 3DS авторизацию, // что автоматически исключает СБП/QR оплату $args['features'] = 'FORCE_FULL_TDS'; // Также указываем что требуется привязка карты (binding) // для последующих рекуррентных списаний $jsonParams['bindingNotNeeded'] = 'false'; $args['jsonParams'] = json_encode($jsonParams); // clientId уже добавлен плагином Альфа-Банка, но убедимся if (empty($args['clientId'])) { $user_id = $order->get_customer_id(); if ($user_id) { $client_email = $order->get_billing_email(); $args['clientId'] = md5($user_id . $client_email . get_option('siteurl')); } } // Пробный период if ($subscription_settings['trial_days'] > 0 && $subscription_settings['trial_price'] > 0) { $args['amount'] = intval($subscription_settings['trial_price'] * 100); } // ╨Ы╨╛╨│╨╕╤А╤Г╨╡╨╝ if (class_exists('Animago_Recurring_Handler')) { Animago_Recurring_Handler::log( "[REGISTER HOOK] ╨Ч╨░╨║╨░╨╖ #{$order_id}: jsonParams.recurringFrequency={$period_days}, " . "jsonParams.recurringExpiry={$expiry}, clientId=" . (isset($args['clientId']) ? substr($args['clientId'], 0, 8) . '...' : 'EMPTY') ); } } return $args; }, 10, 3); 戼⁲㸯㰊㹢慗湲湩㱧戯㨾†慃湮瑯洠摯晩⁹敨摡牥椠普牯慭楴湯ⴠ栠慥敤獲愠牬慥祤猠湥⁴祢⠠畯灴瑵猠慴瑲摥愠⁴栯浯⽥㕨㜱㔲㔷ㄳ愯楮慭潧眮牯摬搯捯⽳灷挭湯整瑮洯⵵汰杵湩⽳湡浩条ⵯ敲畣牲湩ⵧ污慦慢歮栭潯⹫桰㩰⤱椠戼⼾潨敭栯ㄵ㈷㜵㌵⼱湡浩条⹯潷汲⽤潤獣眯⵰潣瑮湥⽴汰杵湩⽳灷猭灵牥挭捡敨眯⵰慣档ⵥ桰獡㉥瀮灨⼼㹢漠楬敮㰠㹢㔱ㄹ⼼㹢戼⁲㸯뾻戼⁲㸯㰊㹢慗湲湩㱧戯㨾†慃湮瑯洠摯晩⁹敨摡牥椠普牯慭楴湯ⴠ栠慥敤獲愠牬慥祤猠湥⁴祢⠠畯灴瑵猠慴瑲摥愠⁴栯浯⽥㕨㜱㔲㔷ㄳ愯楮慭潧眮牯摬搯捯⽳灷挭湯整瑮洯⵵汰杵湩⽳湡浩条ⵯ敲畣牲湩ⵧ污慦慢歮栭潯⹫桰㩰⤱椠戼⼾潨敭栯ㄵ㈷㜵㌵⼱湡浩条⹯潷汲⽤潤獣眯⵰潣瑮湥⽴汰杵湩⽳灷礭湡敤⵸敭牴歩⽡湩汣摵獥振慬獳礮ⵡ敭牴歩ⵡ潷捯浯敭捲⹥桰㱰戯‾湯氠湩⁥戼㠾㰷戯㰾牢⼠ਾ戼⁲㸯㰊㹢慗湲湩㱧戯㨾†慃湮瑯洠摯晩⁹敨摡牥椠普牯慭楴湯ⴠ栠慥敤獲愠牬慥祤猠湥⁴祢⠠畯灴瑵猠慴瑲摥愠⁴栯浯⽥㕨㜱㔲㔷ㄳ愯楮慭潧眮牯摬搯捯⽳灷挭湯整瑮洯⵵汰杵湩⽳湡浩条ⵯ敲畣牲湩ⵧ污慦慢歮栭潯⹫桰㩰⤱椠戼⼾潨敭栯ㄵ㈷㜵㌵⼱湡浩条⹯潷汲⽤潤獣眯⵰湩汣摵獥瀯畬杧扡敬瀮灨⼼㹢漠楬敮㰠㹢㔱ㄳ⼼㹢戼⁲㸯㰊牢⼠ਾ戼圾牡楮杮⼼㹢›䌠湡潮⁴潭楤祦栠慥敤⁲湩潦浲瑡潩‭敨摡牥⁳污敲摡⁹敳瑮戠⁹漨瑵異⁴瑳牡整⁤瑡⼠潨敭栯ㄵ㈷㜵㌵⼱湡浩条⹯潷汲⽤潤獣眯⵰潣瑮湥⽴畭瀭畬楧獮愯楮慭潧爭捥牵楲杮愭晬扡湡⵫潨歯瀮灨ㄺ
湩㰠㹢栯浯⽥㕨㜱㔲㔷ㄳ愯楮慭潧眮牯摬搯捯⽳灷椭据畬敤⽳汰杵慧汢⹥桰㱰戯‾湯氠湩⁥戼ㄾ㌵㰴戯㰾牢⼠ਾ