Gyakran használt snippetek

Saját feltétel hozzáadása az árazás beállításához

//Feltétel hozzáadása az árazás beállításokhoz
add_filter('vp_woo_pont_pricings_conditions', function($conditions){
	$conditions['customer_type'] = array(
		"label" => __('Vevő típus', 'vp-woo-pont'),
		'options' => array(
			'prefix_company' => 'vállalkozás',
			'prefix_individual' => 'magánszemély',
		)
	);
	return $conditions;
});

//Ellenőrzi, hogy a megadott feltétel passzol e
add_filter('vp_woo_pont_pricings_conditions_values', function($cart_details){
	$radio_value = 'company';
	$cart_details['customer_type'] = ($radio_value) ? 'prefix_company' : 'prefix_individual';
	return $cart_details;
});

Egyedi cikkszámok megjelenítése a címkén

add_filter('vp_woo_pont_posta_label_placeholders', function($placeholders, $order){
	$order_items = $order->get_items();
	$order_items_short_skus = array();
	foreach( $order_items as $order_item ) {
		if($product = $order_item->get_product()) {
			if($product->get_meta('_short_sku')) {
				$order_items_short_skus[] = $order_item->get_quantity().'x '.$product->get_meta('_short_sku');
			}
		}
	}

	$placeholders['{short_skus}'] = implode(', ', $order_items_short_skus);
	return $placeholders;
}, 10, 2);

//Create custom field for product
add_action( 'woocommerce_product_options_inventory_product_data', function(){
	woocommerce_wp_text_input( array(
		'id' => '_short_sku',
		'label' => 'Rövid SKU'
	));
});

Tartalom megjelenítése a rendelések táblázatban a csomagkövetés oszlop után

add_action('vp_woo_pont_after_order_list_tracking_column', function($order, $event, $event_type){
	print_r($event);
}, 10, 3);

Egyedi mező a manuális címkegenerálásnál és az érték használata a címke létrehozásához

//Utánvét összeg mező létrehozása
add_action('vp_woo_pont_metabox_after_generate_options', function($order){
	if($order->get_payment_method() == 'cod') {
		?>
		<li>
			<label for="vp_woo_pont_cod_value">Utánvét összeg</label>
			<input type="text" id="vp_woo_pont_cod_value" value="<?php echo esc_attr($order->get_total()); ?>">
		</li>
		<script>
		jQuery(document).ready(function($){
			$.ajaxPrefilter(function(options, originalOptions, jqXHR) {
				if(options.data.includes('vp_woo_pont_generate_label')) {
					var cod_value = $('input#vp_woo_pont_cod_value').val();
					options.data += '&cod_value='+cod_value
				}
			});
		});
		</script>
		<?php
	}
});


//Egyedi utánvét összeg használata címkén
add_filter('vp_woo_pont_prepare_label_data', function($data){
	if(isset($_POST['cod_value'])) {
		$cod_value = intval($_POST['cod_value']);
		$data['package']['total'] = $cod_value;
		$data['package']['total_rounded'] = 5 * round($cod_value / 5);
	}
	return $data;
});

Ország módosítása GLS címkén

add_filter('vp_woo_pont_gls_label', function($label){
	$label['ParcelList'][0]['DeliveryAddress']['CountryIsoCode'] = 'HU';
	print_r($label);
	return $label;
});

Díj hozzáadása szolgáltató alapján a kosárhoz

Az alábbi példában ha Postapont van kiválasztva, vagy a flat_rate:30 azonosítójú szállítási mód van használva, akkor ad hozzá egy csomagolási díjat:

add_action( 'woocommerce_cart_calculate_fees', function($cart){
	if ( is_admin() && ! defined( 'DOING_AJAX' ) )
	return;

	//Get shipping method
	$chosen_methods = WC()->session->get( 'chosen_shipping_methods' );
	$selected_pont = WC()->session->get( 'selected_vp_pont' );
	$chosen_shipping = $chosen_methods[0];
	$vp_pont_chosen = false;
	$home_delivery_instance = 'flat_rate:30';

	//Check if at least one of the shipping methods are vp_pont
	foreach ($chosen_methods as $method) {
		if (strpos($method, 'vp_pont') !== false) {
			$vp_pont_chosen = true;
			break;
		}
	}

	//Check if postapont is selected
	if(($vp_pont_chosen && $selected_pont['provider'] && strpos($selected_pont['provider'], 'posta') !== false) || $chosen_shipping == $home_delivery_instance) {
		$cart->add_fee( 'Csomagolási díj', 1000 );
	}

});

Ebben a cikkben

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

    Verziószám: 3.4.8.2
    Legutóbb frissítve: 2024. 12. 02.
    Változási napló: Megtekint

    WooCommerce Csomagpontok és Címkék