# Cégnév, számlázási cím és országok

> A cégnév mező elrejtése vagy kötelezővé tétele, a Cím 2 kötelezővé tétele, a számlázási cím mezőinek eltávolítása, a kiemelt országok, az utcai házszám ellenőrzése és más címbeállítások.

A fejezet a pénztár címmezőinek gyakori módosításait gyűjti össze. Ahol kódot írunk, azt a **CheckoutWC → Haladó → Szkriptek** fülön a **PHP kódrészletek** mezőbe másold (a nyitó `<?php` címke nélkül), vagy a gyermektéma `functions.php` fájljába, esetleg egy kódrészlet-kezelő bővítménybe. A mező leírása a [Haladó beállítások](https://hub.hellowp.io/hu/plugins/checkout-for-woocommerce/halado/) fejezetben van.

## A cégnév mező: rejtett, nem kötelező vagy kötelező

A cégnév mezőt a WooCommerce vezérli, a beállítása a Testreszabóban van. Ugyanitt állítható a **Cím második sora mező** és a **Telefonszám mező** is.

1. Jelentkezz be adminként, és nyisd meg a pénztároldalt a webáruház felületén.
2. Kattints az eszköztár **Testreszabás** gombjára.
3. Válaszd a **WooCommerce → Pénztár** menüpontot.
4. A **Cégnév mező** legördülőben válaszd ki az egyik állapotot: **Rejtett**, **Nem kötelező** vagy **Kötelező**.
5. Kattints a **Közzététele** gombra.

![A Testreszabó WooCommerce Pénztár szakasza a Cégnév, a Cím második sora és a Telefonszám mező beállításaival](./kepek/mezok-testreszabo-penztar.webp)

*A Testreszabó WooCommerce Pénztár szakasza a Cégnév, a Cím második sora és a Telefonszám mező beállításaival* (https://minta-bolt.hu/wp-admin/customize.php?autofocus[section]=woocommerce_checkout)

A képen a bal oldali panel három legördülője látszik. A **Rejtett** érték eltávolítja a mezőt, a **Kötelező** érték csillagot kap és kitöltés nélkül nem lehet rendelni. A beállítás a számlázási és a szállítási címre is egyszerre érvényes.

## A Cím második sora kötelező

A Cím 2 mezőt ugyanitt teheted kötelezővé: a **Cím második sora mező** legördülőt állítsd **Kötelező** értékre, és kattints a **Közzététele** gombra.

Ha csak a szállítási címnél kell kötelező a mező, használd ezt a kódot:

```php
add_filter( 'woocommerce_checkout_fields', 'require_shipping_address2_checkout_field' );

function require_shipping_address2_checkout_field( $fields ) {
	$fields['shipping']['shipping_address_2']['required'] = true;

	return $fields;
}
```

A számlázási címnél ugyanez a minta működik: a kódban a `shipping` szavakat írd át `billing`-re.

## Opcionális telefonmező

Az opcionális telefonmező is a Testreszabóban kapcsolható: a **Telefonszám mező** legördülőt állítsd **Nem kötelező** értékre (a CheckoutWC saját **Telefon mező** beállításáról a [Telefon, megjegyzés, kupon és e-mail mező](https://hub.hellowp.io/hu/plugins/checkout-for-woocommerce/mezok-alap-mezok/) fejezetben olvashatsz). Ez a számlázási és a szállítási címnél is megjeleníti a mezőt. Opcionális mezőt csak akkor tegyél be, ha tényleg szükséged van a számra, mert a felesleges mező csökkentheti a megrendelések számát.

## Kiemelt országok az országlistában

Ha a rendeléseid többsége néhány országból érkezik, ezeket az ország legördülő lista tetejére rakhatod.

1. Nyisd meg a **CheckoutWC → Oldalak → Pénztár** fület.
2. A **Mező opciók** szakaszban kapcsold be a **Kiemelt országok engedélyezése** beállítást, és válaszd ki az országokat.
3. Kattints a **Módosítások mentése** gombra a képernyő jobb felső sarkában.

![A Mező opciók szakasz a kiemelt országok beállításával](./kepek/mezok-mezo-opciok.webp)

*A Mező opciók szakasz a kiemelt országok beállításával* (https://minta-bolt.hu/wp-admin/admin.php?page=cfw-settings-checkout)

Mentés után a kiválasztott országok a lista elején jelennek meg a pénztáron.

## A számlázási cím mezői

### Szállítandó termékek: egyetlen cím

Ha fizikai terméket árulsz, és nem kell külön számlázási cím, használhatod a WooCommerce beépített beállítását.

1. Nyisd meg a **WooCommerce → Beállítások** oldalt.
2. Kattints a **Szállítás** fülre, majd a **Szállítási beállítások** alfülre.
3. A **Szállítási cél** beállításnál válaszd a **Szállítás kényszerítése a vásárló számlázási címére** lehetőséget, és kattints a **Módosítások mentése** gombra.

![A WooCommerce Szállítási beállítások oldala a Szállítási cél választókkal](./kepek/mezok-szallitasi-opciok.webp)

*A WooCommerce Szállítási beállítások oldala a Szállítási cél választókkal* (https://minta-bolt.hu/wp-admin/admin.php?page=wc-settings&tab=shipping&section=options)

A képen a **Szállítási cél** három választógombja látszik, a harmadik kapcsolja ki a külön szállítási címet.

4. Ha a címsort is át akarod írni (alapból „Számlázási és szállítási cím”), használd ezt a kódot:

```php
add_filter( 'cfw_billing_shipping_address_heading', function ( $heading ) {
	return 'Szállítási cím';
} );
```

### Digitális termékek: számlázási címmezők eltávolítása

Ha nincs szükséged teljes számlázási címre, két dolgot kell tenni: kivenni a mezőt a pénztárból, és közölni a WooCommerce-szel, hogy a mező nem kötelező. A következő kód mindkettőt elvégzi, a nem kért sorokat töröld ki belőle:

```php
add_filter( 'cfw_get_billing_checkout_fields', 'remove_checkout_fields', 100 );

function remove_checkout_fields( $fields ) {
	unset( $fields['billing_company'] );
	unset( $fields['billing_city'] );
	unset( $fields['billing_postcode'] );
	unset( $fields['billing_country'] );
	unset( $fields['billing_state'] );
	unset( $fields['billing_address_1'] );
	unset( $fields['billing_address_2'] );

	return $fields;
}

// A számlázási címmezők ne legyenek kötelezők
add_filter( 'woocommerce_checkout_fields', 'unrequire_checkout_fields' );

function unrequire_checkout_fields( $fields ) {
	$fields['billing']['billing_company']['required']   = false;
	$fields['billing']['billing_city']['required']      = false;
	$fields['billing']['billing_postcode']['required']  = false;
	$fields['billing']['billing_country']['required']   = false;
	$fields['billing']['billing_state']['required']     = false;
	$fields['billing']['billing_address_1']['required'] = false;
	$fields['billing']['billing_address_2']['required'] = false;

	return $fields;
}
```

Fontos: ha az **Ország** mező megmarad, az **Állam** mezőnek is meg kell maradnia, különben hibák keletkeznek, mert a WooCommerce ország- és államkezelője csak együtt működik jól.

### Mindig külön számlázási cím

Ha azt szeretnéd, hogy a vásárlónak mindig látszódjon és kitölthető legyen a számlázási cím is, használd ezt:

```php
add_filter( 'cfw_force_display_billing_address', '__return_true' );
```

### A számlázási cím a fizetési módok fölé

Alapból a fizetési módok után jön a számlázási cím. A sorrend megfordítható:

```php
remove_action( 'cfw_checkout_payment_method_tab', 'cfw_payment_methods', 10 );
remove_action( 'cfw_checkout_payment_method_tab', 'cfw_payment_tab_content_billing_address', 20 );

add_action( 'cfw_checkout_payment_method_tab', 'cfw_payment_tab_content_billing_address', 10 );
add_action( 'cfw_checkout_payment_method_tab', 'cfw_payment_methods', 20 );
```

## Az alapország kiírása a címelőnézetben

A WooCommerce alapból nem írja ki az országot a formázott címben, ha az megegyezik a bolt alapországával. Ha mindig látszódjon:

```php
add_filter( 'woocommerce_formatted_address_force_country_display', '__return_true' );
```

## A webhely neve a fiók létrehozása felirat

A **Fiók létrehozása** jelölőnégyzet felirata a webhely nevét tartalmazza. Más névre így cserélheted:

```php
add_filter( 'cfw_create_account_site_name', 'change_create_account_site_name' );

function change_create_account_site_name( $site_name ) {
	$site_name = 'Minta Kft.';

	return $site_name;
}
```

## Utcai házszám ellenőrzése

Ezzel a kóddal a pénztár csak olyan **Cím 1** értéket fogad el, amely tartalmaz számot (házszámot). A beépített hosszellenőrzést is kikapcsolja. A hibaüzenet szövegét írd át a sajátodra.

```php
add_filter(
	'woocommerce_default_address_fields',
	function ( $fields ) {
		unset( $fields['postcode']['custom_attributes']['data-parsley-length'] );

		$fields['address_1']['custom_attributes']['data-parsley-pattern']       = '/^(?=.*\d).+$/';
		$fields['address_1']['custom_attributes']['data-parsley-error-message'] = __( 'A címnek tartalmaznia kell a házszámot.', 'your-translation-domain' );

		return $fields;
	},
	100001
);
```

Ha lakás- vagy ajtószámot is el kell várnod (csak akkor kapcsold be, ha biztosan szükséged van rá), a mintát és az üzenetet erre cseréld:

```php
add_filter(
	'woocommerce_default_address_fields',
	function ( $fields ) {
		unset( $fields['postcode']['custom_attributes']['data-parsley-length'] );

		$fields['address_1']['custom_attributes']['data-parsley-pattern']       = '/^(?=.*\b\d+\b.*(?:Apt\s+\d+|Unit\s+\d+|#|\d+-|\b\d+\b)).+$/i';
		$fields['address_1']['custom_attributes']['data-parsley-error-message'] = __( 'A címnek tartalmaznia kell a házszámot és a lakásszámot.', 'your-translation-domain' );

		return $fields;
	},
	100001
);
```

A minta angol címformákra (`Apt`, `Unit`) van hangolva, magyar címeknél a reguláris kifejezést a saját címformádhoz igazítsd.

## A szállítási telefonszám a rendelési e-mailekben

A szállítási telefonszám alapból nem szerepel a WooCommerce e-mailekben. Ha ki akarod írni, használd ezt a kódot (a `Szállítási telefon` feliratot átírhatod):

```php
add_filter( 'woocommerce_email_order_meta_fields', 'custom_woocommerce_email_order_meta_fields', 10, 3 );

function custom_woocommerce_email_order_meta_fields( $fields, $sent_to_admin, $order ) {
	$fields['meta_key'] = array(
		'label' => __( 'Szállítási telefon' ),
		'value' => get_post_meta( $order->id, '_shipping_phone', true ),
	);

	return $fields;
}
```
