Stripe взимает с пользователя плату несколько раз после размещения первоначального заказа (полоса woocommerce) ⇐ Php
-
Anonymous
Stripe взимает с пользователя плату несколько раз после размещения первоначального заказа (полоса woocommerce)
В woocommerce после оформления заказа создается заказ, но вместо страницы благодарности пользователь перенаправляется на страницу дополнительных продаж, где пользователь может обновить существующий заказ, добавив новый товар. Если они решат добавить его, заказ будет обновлен.
У меня есть этот код, он должен взимать с пользователя дополнительную плату, если он решит купить дополнительный товар, но я получаю критическую ошибку. Может не правильно написал?
if ( is_page('upsell-1') && isset($_GET['woocommerce_checkout_place_order'])) ) { $order_id = WC()->session->get('original_order_id'); $selected_product_id = isset($_GET['selected_product_id']) ? sanitize_text_field($_GET['selected_product_id']) : ''; if ($order_id > 0 && !empty($selected_product_id)) { $order = wc_get_order($order_id); $order->add_product(wc_get_product($selected_product_id)); $order->calculate_totals(); $options = get_option('woocommerce_stripe_settings'); $stripeKey = 'да' === $options['testmode'] ? $options['test_secret_key'] : $options['secret_key'] ; \Stripe\Stripe::setApiKey($stripeKey); $stripe_customer_id = $order->get_meta('_stripe_customer_id'); $product_id = absint($_GET['selected_product_id']); $product = wc_get_product($product_id); $product_value = $product->get_price(); $charge = \Stripe\Charge::create([ 'сумма' => $product_value, 'валюта' => 'доллары США', 'клиент' => $stripe_customer_id, ]); WC()->session->set('upsell-1-viewed', true); wp_redirect('/upsell-2'); Выход; } }
В woocommerce после оформления заказа создается заказ, но вместо страницы благодарности пользователь перенаправляется на страницу дополнительных продаж, где пользователь может обновить существующий заказ, добавив новый товар. Если они решат добавить его, заказ будет обновлен.
У меня есть этот код, он должен взимать с пользователя дополнительную плату, если он решит купить дополнительный товар, но я получаю критическую ошибку. Может не правильно написал?
if ( is_page('upsell-1') && isset($_GET['woocommerce_checkout_place_order'])) ) { $order_id = WC()->session->get('original_order_id'); $selected_product_id = isset($_GET['selected_product_id']) ? sanitize_text_field($_GET['selected_product_id']) : ''; if ($order_id > 0 && !empty($selected_product_id)) { $order = wc_get_order($order_id); $order->add_product(wc_get_product($selected_product_id)); $order->calculate_totals(); $options = get_option('woocommerce_stripe_settings'); $stripeKey = 'да' === $options['testmode'] ? $options['test_secret_key'] : $options['secret_key'] ; \Stripe\Stripe::setApiKey($stripeKey); $stripe_customer_id = $order->get_meta('_stripe_customer_id'); $product_id = absint($_GET['selected_product_id']); $product = wc_get_product($product_id); $product_value = $product->get_price(); $charge = \Stripe\Charge::create([ 'сумма' => $product_value, 'валюта' => 'доллары США', 'клиент' => $stripe_customer_id, ]); WC()->session->set('upsell-1-viewed', true); wp_redirect('/upsell-2'); Выход; } }
Мобильная версия