У меня есть сомнения по поводу работы, выполненной на странице оформления заказа. Кажется, это работает, но я не знаю, правильна ли эта процедура или, возможно, можно сделать это более чистым способом.
Мне нужно было скрыть некоторые поля из формы выставления счета, которые ссылаются на необязательный запрос счета.
Затем сразу после формы я зацепил крючок с надписью «Вам нужен счет?» и нажав на него с помощью jQuery, вы откроете определенный div Мое намерение состояло в том, чтобы появиться в этих полях div, связанных с запросом счета, например, номером НДС и т. Д. *
Вот что я сделал: я переопределил файл form-billing.php и скрыл представление по умолчанию для поля биллинга:
<div class="woocommerce-billing-fields__field-wrapper">
<?php
$fields = $checkout->get_checkout_fields( 'billing' );
foreach ( $fields as $key => $field ) {
if ( isset( $field['country_field'], $fields[ $field['country_field'] ] ) ) {
$field['country'] = $checkout->get_value( $field['country_field'] );
}
//here i only added this from original template:
if ($field['label'] != 'Partita Iva') {
woocommerce_form_field( $key, $field, $checkout->get_value( $key ) );
}
}
?>
</div>
Затем в functions.php я вставил следующий код:
add_action( 'woocommerce_after_checkout_billing_form', 'fattura_elettronica_garage' );
function fattura_elettronica_garage(){
?>
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 mt-2 mb-2">
<div id="click_fattura" class="caffeita_need_invoice_block pt-1 pb-1 pl-2 pr-2">
<a class="" data-toggle="collapse" aria-expanded="true">
<h3 class="orange mt-0">HAI BISOGNO DELLA FATTURA?</h3>
</a>
</div>
<div id="fattura" class="" aria-expanded="true" style="">
<div class="woocommerce-billing-fields__field-wrapper">
<?php
$checkout = new WC_Checkout();
$fields = $checkout->get_checkout_fields( 'billing' );
foreach ( $fields as $key => $field ) {
if ( isset( $field['country_field'], $fields[ $field['country_field'] ] ) ) {
$field['country'] = $checkout->get_value( $field['country_field'] );
}
if ($field['label'] == 'Partita Iva') {
woocommerce_form_field( $key, $field, $checkout->get_value( $key ) );
}
}
?>
<?php do_action( 'woocommerce_after_checkout_billing_form', $checkout ); ?>
</div>
</div>
</div>
<?
}
Див:
<div id="fattura" class="" aria-expanded="true" >
откройте его с помощью jquery. с этим кодом:
jQuery( "#fattura" ).hide();
jQuery('#click_fattura').click(function()
{
jQuery( "#fattura" ).toggle( "slow", function() {
// Animation complete.
});
и дополнительное поле оформления заказа с этим кодом:
function add_extra_field_checkout( $fields ) {
$fields['billing_FIELD_ID'] = array(
'label' => __( 'Partita Iva' ),
'type' => 'text',
'class' => array( 'form-row-wide', 'update_totals_on_change' ),
'priority' => 110,
'required' => true,
'placeholder' => __( 'inserisci la Partita Iva' ),
);
return $fields;
}
add_filter( 'woocommerce_billing_fields', 'add_extra_field_checkout' );