я в настоящее время опорожнения и добавили товар в корзину пользователей при посещении сайта - как они когда-либо будет только один продукт (пожертвование), например так:WooCommerce: установить цену программно
function add_donation_to_cart() {
global $woocommerce;
$woocommerce->cart->empty_cart();
$woocommerce->cart->add_to_cart('195', 1, null, null, null);
}
I используйте специальную форму, чтобы получить информацию $_POST
- сумма отправляется на страницу пожертвований, эффективно в корзину пользователя, в которой уже есть продукт. Пользовательская сумма используется в функции ниже, чтобы изменить цену. Цена отображается правильно в корзине, на странице проверки, а также на перенаправленном платежном шлюзе (на самой перенаправленной странице).
Однако, как только вы перенаправлены, woocommerce создает заказ, и он отмечает его как «обработку». Недопустимая сумма, отображаемая в заказе.
Функция Я использовал, чтобы изменить цену отображается ниже:
add_action('woocommerce_before_calculate_totals', 'add_custom_total_price');
function add_custom_total_price($cart_object)
{
session_start();
global $woocommerce;
$custom_price = 100;
if($_POST)
{
if(!empty($_POST['totalValue']))
{
$theVariable = str_replace(' ', '', $_POST['totalValue']);
if(is_numeric($theVariable))
{
$custom_price = $theVariable;
$_SESSION['customDonationValue'] = $custom_price;
}
else
{
$custom_price = 100;
}
}
}
else if(!empty($_SESSION['customDonationValue']))
{
$custom_price = $_SESSION['customDonationValue'];
}
else
{
$custom_price = 100;
}
var_dump($_SESSION['customDonationValue']);
foreach ($cart_object->cart_contents as $key => $value)
{
$value['data']->price = $custom_price;
}
}
Теперь я не совсем уверен, что если у него есть что-то делать с моим, если заявление, но цена всегда неправильно установлен 100, даже если цена на продукцию установлена на 0.
Любая помощь или понимание будут оценены!