Удалить Div на странице оформления заказа Woocommerce, когда значение корзины равно нулю

У меня на сайте, на котором я работаю, есть много бесплатных продуктов, к которым участники имеют доступ после присоединения. Они должны пройти проверку снова, чтобы получить их (это ваучеры, которые должны быть сгенерированы уникально для каждого пользователя, следовательно, необходимо снова пройти проверку).

Когда пользователь добавляет один из этих продуктов в корзину и переходит к оформлению заказа, я хочу отобразить очень простую страницу оформления заказа. Я просто хочу добавить изображение баннера, а затем масляный центр «разместить заказ», выровненный чуть ниже изображения.

Мне удалось удалить большую часть полей оформления заказа, используя следующий код:

function sv_free_checkout_fields() {

global $woocommerce ;

// Bail we're not at checkout, or if we're at checkout but payment is needed
if ( ! is_checkout() || ( is_checkout() && WC()->cart->needs_payment() ) ) {
return;
}

if ( $woocommerce->cart->total != 0 ) {
return;
}

if ( WC_Subscriptions_Cart::cart_contains_subscription() ) {
return;
}

// remove coupon forms since why would you want a coupon for a free cart??
remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form', 10 );

// remove order review section
remove_action( 'woocommerce_checkout_order_review', 'woocommerce_order_review', 10 );

// Remove the "Additional Info" order notes
add_filter( 'woocommerce_enable_order_notes_field', '__return_false' );
// Unset the fields we don't want in a free checkout
function unset_unwanted_checkout_fields( $fields ) {

// add or remove billing fields you do not want
// list of fields: http://docs.woothemes.com/document/tutorial-customising-checkout-fields-using-actions-and-filters/#section-2
$billing_keys = array(
'billing_first_name',
'billing_last_name',
'billing_company',
'billing_phone',
'billing_email',
'billing_address_1',
'billing_address_2',
'billing_city',
'billing_postcode',
'billing_country',
'billing_state',
);
// unset each of those unwanted fields
foreach( $billing_keys as $key ) {
unset( $fields['billing'][$key] );
}

return $fields;
}
add_filter( 'woocommerce_checkout_fields', 'unset_unwanted_checkout_fields' );

// A tiny CSS tweak for the account fields; this is optional
function print_custom_css() {
echo '<style>.create-account { margin-top: 6em; }</style>';
}
add_action( 'wp_head', 'print_custom_css' );
}
add_action( 'wp', 'sv_free_checkout_fields' );

Так что на данный момент, каждый раз, когда один из этих бесплатных продуктов добавляется в корзину, и пользователь переходит к оформлению заказа, он удаляет все, кроме кнопки «Разместить заказ» (которую я хочу сохранить), некоторые стили вокруг этой кнопки, « Название платежной информации »слева, плюс прямоугольная рамка вокруг этого заголовка и еще одно прямоугольное поле под ним. Я не могу понять, как удалить эти последние несколько вещей.

Вот код, который мне нужно удалить, который создал поле вокруг кнопки:

body.woocommerce-cart .cart-collaterals, form.checkout.woocommerce-checkout
#order_review {
width: 40%;
display: inline-block;
padding: 20px;
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
border-radius: 2px;
border: 1px solid #f1f1f1;
background-color: #fdfdfd;
}

И вот div, который мне нужно удалить с левой стороны:

<div class="woocommerce-billing-fields">

<h3>Billing details</h3><div class="woocommerce-billing-fields__field-wrapper">
</div>

</div>

Мне нужно только удалить их, когда общее количество корзины равно нулю. Я также хотел бы отцентрировать кнопку размещения заказа и, если возможно, добавить над ней баннер.

0

Решение

Как насчет замены div, описанного выше:

<?php
$cart_total = WC()->cart->get_cart_total();
if ( $cart_total != 0 ) {
?>
<div class="woocommerce-billing-fields">
<h3>Billing details</h3>
<div class="woocommerce-billing-fields__field-wrapper"></div>
</div>
<?php } ?>

Таким образом, если стоимость корзины НЕ равно нулю это будут дисплей.

Я не проверял это, но теория есть. Вам может понадобиться добавить ноль всего товаров в корзину и эхо WC()->cart->get_cart_total(); проверить вывод. Может вернуть 0,00 или $ 0,00. В этом случае вам нужно будет соответствующим образом изменить код.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector