Gyakran használt snippetek

Egyedi feltétel a több fiók kezeléshez

add_filter('wc_szamlazz_account_conditions', function($conditions) {
  $conditions[] = array(
    "label" => 'Egyedi feltétel',
    "options" => array(
      'custom-condition-1' => __('Feltétel 1'),
      'custom-condition-2' => __('Feltétel 2')
    )
  );

  return $conditions;
});

add_filter('wc_szamlazz_account_conditions_values', function($conditions, $order) {

    if($order->get_meta('_some_custom_field_1')) {
        $conditions[] = 'custom-condition-1';
    }

    if($order->get_meta('_some_custom_field_2')) {
        $conditions[] = 'custom-condition-2';
    }

    return $conditions;
}, 10, 2);

Termék attribútum feltétel több fiók kezeléshez

add_filter('wc_szamlazz_account_conditions', function($conditions) {
	$attributes = wc_get_attribute_taxonomies();
	$attribute_values = array();
	foreach($attributes as $attribute) {
		$taxonomy = wc_attribute_taxonomy_name( $attribute->attribute_name );
		$terms = get_terms( array(
			'taxonomy' => $taxonomy,
			'hide_empty' => false,
		));
		
		foreach($terms as $term) {
			$attribute_values[$taxonomy.':'.$term->term_id] = $attribute->attribute_name.' - '.$term->name;
		}
	}

	$conditions[] = array(
		"label" => 'Attribútum',
		"options" => $attribute_values
	);

	return $conditions;
});


add_filter('wc_szamlazz_account_conditions_values', function($conditions, $order) {
	$items = $order->get_items();
	$attributes = array();
	foreach($items as $item) {
		$product = $item->get_product();
		$attributes = $product->get_attributes();
		if($attributes) {
			foreach($attributes as $attribute) {
				$conditions[] = $attribute['name'].':'.$attribute['options'][0];
			}
		}
	}
	return $conditions;
}, 10, 2);

Adószám módosítása

add_filter('wc_szamlazz_xml_adoszam', function($taxcode, $order){
    if($custom_taxcode = $order->get_meta('_egyedi_adoszam_mezo_erteke')) {
        $taxcode = $custom_taxcode;
    }
    return $taxcode;
}, 10, 2);

Extra megjegyzés feltétel

add_filter('wc_szamlazz_notes_conditions', function($conditions){
    $conditions['currency'] => array(
        'label' => 'Pénznem',
        'options' => array(
            'EUR' => 'Euró',
            'HUF' => 'Forint'
        )
    )
    return $conditions;
});

add_filter('wc_szamlazz_notes_conditions_values', function($conditions_values, $order){
	$conditions_values['currency'] = $order->get_currency();
	return $conditions_values;
}, 10, 2);

Számla nyelv módosítása

add_filter('wc_szamlazz_xml', function($szamla, $order){
	$country = $order->get_shipping_country();
	if($country != 'HU') {
		$szamla->fejlec->szamlaNyelve = 'en';
	}
	return $szamla;
}, 10, 3);

Tétel áfakulcs felülírás

add_filter('wc_szamlazz_invoice_line_item', function($item){
	if($item->megnevezes == 'Betétdíj') {
		$item->afakulcs = 'ATK';
	}
	return $item;
}, 10);

Tétel megjegyzés módosítás

add_filter('wc_szamlazz_invoice_line_item', function($item, $order_item){
	if($order_item->get_type() == 'line_item' && $product = $order_item->get_product()) {
		$excerpt = $product->get_short_description();
		$item->megjegyzes .= $excerpt;
	}

	return $item;
}, 10, 2);

Számla nyelv módosítás

add_filter( 'wc_szamlazz_get_order_language', function($lang_code, $order){
	if($locale = $order->get_meta('_gtranslate_selected_language')) {
		$locale = substr($locale, 0, 2);
		if($locale && in_array($locale, array('hu', 'de', 'en', 'it', 'fr', 'hr', 'ro', 'sk', 'es', 'pl', 'cz'))) {
			$lang_code = $locale;
		}
	}
	return $lang_code;
}, 10, 2);

Tétel elrejtése

add_filter('wc_szamlazz_invoice_line_item', function($tetel, $order_item){
	if(strpos($tetel->megnevezes, "Kedvezmény") !== false) {
		return false;
	}
	return $tetel;
}, 10, 2);

Tétel hozzáadása a számlához


add_filter('wc_szamlazz_xml', function($szamla, $order){
	$gift_cards = $order->get_items( 'pw_gift_card' );
	if ( $gift_cards ) {
		foreach ( $gift_cards as $gift_card ) {
			$tetel = new WCSzamlazzSimpleXMLElement('<tetel></tetel>');
			$tetel->addChild('megnevezes', 'Ajándékkártya kedvezmény');
			$tetel->addChild('mennyiseg', 1);
			$tetel->addChild('mennyisegiEgyseg', 'db');
			$vat_rate = '27';
			$total = $gift_card->get_amount();

			$tetel = WC_Szamlazz()->calculate_item_prices(array(
				'net' => $total,
				'tax' => 0,
				'vat_rate' => $vat_rate,
				'negative' => true,
				'rounding' => 0,
				'tetel' => $tetel,
				'order_item' => $gift_card
			));
			$tetel->addChild('megjegyzes', $gift_card->get_name());
			$szamla->tetelek->appendXML($tetel);

		}
	}
	return $szamla;
}, 10, 2);

Ebben a cikkben

    Bővítmény információk

    Verziószám: 6.0.5
    Legutóbb frissítve: 2024. 10. 04.
    Változási napló: Megtekint

    WooCommerce Számlázz.hu