מחיר ליחידה לווקומרס

עבור אילו סוגי מוצרים התוסף מתאים?
1. מוצרים שנמכרים ביחידות אך התמחור שלהם לפי משקל (מתאים לחנות דגים ולאטליז/קצביה, מכירת נתחי בשר).
2. מוצרים שנמכרים במשקל (לפי ק"ג/גרם, מתאים לסופרמרקט ולירקניה, למעדניה ולמאפייה, מכירת פירות וירקות, פיצוחים, תבלינים).

איך להציג את שדה הכמות של האפשרות 'כמות בעמודי חנות' רק בעמודים התומכים בה במלואה?

add_filter( 'upw_quantity_field_simple_enabled', 'upw_quantity_field_exclude_pages' );
function upw_quantity_field_exclude_pages( $enabled ) {
	return is_shop() || is_product_category() ? $enabled : false;
}

מדוע סיומת הכמות אינה מופיעה אחרי שדה הכמות?
וודא שבסוף הקובץ templates/global/quantity-input.php שבתבנית/בתוספים קיימת השורה:

do_action( 'woocommerce_after_quantity_input_field' );

איך להחיל Quantity Step מסוים לכל המוצרים מקטגוריות מסוימות?
עדכן את ה-id של הקטגוריות ואת ה-Quantity Step הרצוי:

add_filter( 'woocommerce_product_get__upw_step', 'upw_set_step', 10, 2 );
function upw_set_step( $step, $product ) {
	$cat_ids = [ '24', '37' ];
	$new_step = '0.01';
	return ! $step && array_intersect( $cat_ids, wc_get_product_cat_ids( $product->get_id() ) ) ? $new_step : $step;
}

איך להחיל 'יחידות לכמות' מסוימות לכל המוצרים מקטגוריות מסוימות?
עדכן את ה-id של הקטגוריות ואת ה'יחידות לכמות' הרצויות:

add_filter( 'woocommerce_product_get__upw_measurement', 'upw_set_measurement', 10, 2 );
function upw_set_measurement( $measurement, $product ) {
	$cat_ids = [ '15', '58' ];
	$new_measurement = 'weight';
	return 'none' === $measurement && array_intersect( $cat_ids, wc_get_product_cat_ids( $product->get_id() ) ) ? $new_measurement : $measurement;
}

איך להסתיר את המחיר הראשי של המוצרים (מתאים כשמציגים את הסה"כ)?

remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price' );

איך לקבוע כמות מינימלית להזמנה לכל המוצרים שמוגדרים עם Quantity Step מסוים (לא תואם לאפשרות 'עדכון הכמות האוטומטית')?
עדכן את ה-Quantity Step של המוצרים ואת ערכי המינימום:

add_filter( 'upw_skip_args_validation', '__return_true' );
add_filter( 'upw_product_min_value', 'upw_set_min_value' );
add_filter( 'upw_variation_min_qty', 'upw_set_min_value' );
add_filter( 'woocommerce_update_cart_validation', 'upw_apply_min_quantity', 10, 4 );

function upw_get_min_values() {
	return [
		'0.1'	=> '0.3',
		'0.01'	=> '0.5',
	];
}

function upw_set_min_value( $step ) {
	$min_values = upw_get_min_values();
	return $min_values[ $step ] ?? $step;
}

function upw_apply_min_quantity( $passed, $cart_item_key, $values, $quantity ) {
	$min_values = upw_get_min_values();
	$step = $values['data']->get_meta( '_upw_step' );
	if ( $step && isset( $min_values[ $step ] ) && $quantity > 0 && $quantity < $min_values[ $step ] ) {
		wc_add_notice( __( 'A minimum order amount', 'woocommerce' ) . ' (' . $values['data']->get_name() . '): ' . $min_values[ $step ], 'error' );
		return false;
	}
	return $passed;
}

איך להגדיר שה-Quantity Step יהיה הכמות שתתווסף לעגלה כברירת מחדל בעמודי חנות כאשר לא משתמשים באפשרות 'כמות בעמודי חנות'?

add_filter( 'pre_option_woocommerce_enable_ajax_add_to_cart', 'wc_force_ajax_add_to_cart' );
add_filter( 'woocommerce_loop_add_to_cart_args', 'upw_set_default_quantity', 10, 2 );
add_filter( 'woocommerce_product_add_to_cart_text', 'upw_set_text_quantity', 10, 2 );

function wc_force_ajax_add_to_cart() {
	return 'yes';
}

function upw_set_default_quantity( $args, $product ) {
	$step = $product->get_meta( '_upw_step' );
	if ( $step ) {
		$args['quantity'] = $step;
	}
	return $args;
}

function upw_set_text_quantity( $text, $product ) {
	return $product->is_purchasable() && $product->is_in_stock() ? $text . ' ' . $product->get_meta( '_upw_step' ) . $product->get_meta( '_upw_quantity_suffix' ) : $text;
}

איך להציג סיומת למחיר הראשי במוצר עם וריאציות במידה ולכל הוריאציות מוגדרת אותה אחת?

add_filter( 'woocommerce_variable_price_html', 'upw_set_main_price_suffix', 10, 2 );
function upw_set_main_price_suffix( $price, $product ) {
	foreach ( $product->get_available_variations( 'object' ) as $variation ) {
		$variation_suffix = $variation->get_meta( '_upw_price_suffix' );
		if ( isset( $product_suffix ) && $product_suffix !== $variation_suffix ) {
			return $price;
		} else {
			$product_suffix = $variation_suffix;
		}
	}
	return $price . ( $product_suffix ?? '' );
}

איך להסתיר את טווח המחירים, שם התכונה ולינק האיפוס במוצרים עם וריאציות?

add_filter( 'woocommerce_reset_variations_link', '__return_empty_string' );
add_filter( 'woocommerce_attribute_label', '__return_empty_string' );
add_filter( 'woocommerce_variable_sale_price_html', '__return_empty_string' );
add_filter( 'woocommerce_variable_price_html', '__return_empty_string' );

איך להציג את שדה הכמות של מוצרים פשוטים רק במעבר עכבר כשמשתמשים באפשרות ה'עדכון האוטומטי של הכמות'?

add_filter( 'upw_auto_update_hide_field', '__return_true' );

איך להסיר את התוסף?
כבה את התוסף, והוסף קוד זה על מנת להמשיך ולראות מחירים וכמויות בהזמנות עם מוצרים עם כמות עשרונית:

remove_filter( 'woocommerce_stock_amount', 'intval' );
add_filter( 'woocommerce_stock_amount', 'floatval' );
if ( is_admin() ) {
	add_filter( 'woocommerce_quantity_input_step', 'upw_admin_quantity_step' );
}

function upw_admin_quantity_step() {
	return 'any';
}

2 תגובות על “מחיר ליחידה לווקומרס”

  1. תמונת פרופיל של לארי

    היי!

    קודם כל תוסף מעולה!

    רציתי לשאול בנוגע להוספה לסל הדינמי (או ה-AJAX), אנחנו בנינו את האתר עם אלמנטור, ווקומרס וCrocoblock.
    עכשיו אני חיפשתי ונכנסתי לשאלות שאנשים שאלו אותך כגון – https://wordpress.org/support/topic/plugin-reports-a-unit-price-in-the-cart-instead-of-a-price-per-multiple/

    ושמתי לב שלחבור היית בעיה עם אלמנטור, רציתי לשאול אם זה עדיין קיים?
    כלומר במקום להשתמש בבונה אתרים של אלמנטור חייבים להשתמש בדיפולט?

    בנוסף לכך רציתי לשאול מכיוון שבעמוד הבית של האתר המצורף, עשינו קרוסלה של מוצרים של התוסף JetWoobuilder אבל כשאנחנו לוחצים על פלוס או מינוס זה לא מוסיף
    שום מוצר לעגלה בעוד שהפעלנו את האפשרות ב-Back-End, בהגדרות של התוסף.

    אם זה לא עובד ביחד עם זה אז רציתי לשאול אם יש אלטרנטיבות אחרות, כלומר כמו באתרים – https://noyhasade.co.il/ ו- https://www.carmella.co.il/

    תודה ענקית מראש על העזרה!

    בברכה,
    לארי

    1. תמונת פרופיל של Condless

      היי לארי,
      זה יצריך בדיקה של האתר, אנא צור קשר באימייל

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *