Tovább a tartalomhoz

Számítási példák: napok, törtek, átváltás és tizedes lépésköz

Két dátum közti napok számolása szám mezőbe, valamint törtméretek (például 1/8) használata területszámításhoz.

A Számítás mező nem számol dátumokkal, ezért a napok számát egy kis JavaScript tölti ki egy Szám mezőbe, amelyet a vásárló nem tud átírni. Az eredményt aztán más számítások felhasználhatják, például bérleti díj számolásához.

  1. Vegyél fel két Dátum mezőt: az egyik a kezdő, a másik a záró dátum.
  2. Vegyél fel egy Szám mezőt az eredménynek.
  3. Jegyezd fel mindhárom mező azonosítóját.

Add a kódot az oldalhoz (például egy kódrészlet-bővítménnyel). A kód a wp_footer horgon keresztül kerül az oldal aljára. Három dolgot csinál:

  • az eredménymezőt csak olvashatóvá teszi (.pewc-number-field-<azonosító>),
  • figyeli a dátummezők (.pewc-date-field) change és update eseményeit,
  • ha mindkét dátum ki van töltve, kiszámolja a különbséget napokban, és beírja az eredménymezőbe.

A számítás: a két dátum különbségének abszolút értékét osztja egy nap ezredmásodpercben kifejezett hosszával (1000 × 60 × 60 × 24), és lefelé kerekíti. A sorrend tehát nem számít.

add_action( 'wp_footer', function () {
if ( ! is_product() ) {
return;
}
?>
<script>
jQuery( function ( $ ) {
// Cseréld a három azonosítót a saját mezőidére.
var startId = 1245;
var endId = 1246;
var resultId = 1247;
var $result = $( '.pewc-number-field-' + resultId );
$result.prop( 'readonly', true );
function updateDays() {
var start = $( '.pewc-date-field-' + startId ).val();
var end = $( '.pewc-date-field-' + endId ).val();
if ( ! start || ! end ) {
return;
}
var diff = Math.abs( new Date( end ) - new Date( start ) );
var days = Math.floor( diff / ( 1000 * 60 * 60 * 24 ) );
$result.val( days ).trigger( 'change' );
}
$( 'body' ).on( 'change update', '.pewc-date-field', updateDays );
} );
</script>
<?php
} );

A kódban a 1245, 1246, 1247 mintaazonosító: a saját mezőid azonosítóját írd a helyükre. A termék közzététele után a szám mező mutatja a napok számát, és a vásárló nem szerkesztheti.

Ha a vásárló törtekkel (például 1/8 vagy 1/4) adja meg a méreteket, a törtet tizedes számra kell váltani a területszámításhoz. Ehhez egy egész számot és egy törtválasztót kombinálsz.

  1. Vegyél fel egy szokásos Szám mezőt az első méret egész részének (például Szélesség).
  2. Vegyél fel egy Kiválasztás mezőt, amelynek opciói a törtek (például 1/8, 1/4).
  3. Az opciók Ár oszlopába írd be a tört tizedes értékét: 0,125 az 1/8-hoz, 0,25 az 1/4-hez (a képletekben tizedespontot használj: 0.125).
  4. A Mező árának láthatósága és az Opció árának láthatósága legyen Rejtett, hogy a vásárló ne lássa árként.
  5. Ismételd meg a többi mérettel (például Magasság).
  1. Vegyél fel egy Számítás mezőt, amely a szélességet tizedes számra váltja:

    {field_1752} + {field_1753_option_price}

    A field_1752 helyére az egész szám mező azonosítója, a field_1753 helyére a törtválasztó mező azonosítója kerül.

  2. Ha nem akarod megjeleníteni a termékoldalon, kapcsold be a Számítás elrejtése? beállítást.

  3. Állítsd be a Tizedesjegyek értékét megfelelő számra.

  4. Ismételd meg a magassággal.

Vegyél fel egy újabb Számítás mezőt, amely összeszorozza a két tizedes mezőt:

{field_2796} * {field_2797}

A két azonosító a szélesség és a magasság számítás mező azonosítója legyen.

A bővítmény nem kezel mértékegységeket, de három mezővel megoldható az átváltás: a vásárló kiválasztja a mértékegységet, beírja az értéket, a számítás pedig az átváltott eredményt adja.

  1. Vegyél fel egy új mezőt, a Mező típusa legyen Rádiógomb-csoport, és adj neki címkét. Választómező is jó.
  2. Az Opciók fülön vegyél fel két opciót: Láb és Méter.
  3. Az Ár oszlopba az átváltási szorzót írd: a Láb mellé 0.3048, a Méter mellé 1.
  4. Az Árazás fülön az Opció árának láthatósága legyen Rejtett, így a szorzó csak a számításban szerepel, a vásárló nem látja, és a kosárba sem kerül ár.
  5. Jegyezd fel a mező azonosítóját (például 123).
  1. Vegyél fel egy Szám típusú mezőt, és adj neki címkét.
  2. A Minimális érték legyen 0.
  3. Állítsd be a Tizedesjegyek értékét a kívánt pontosságra.
  4. Jegyezd fel a mező azonosítóját (például 124). Ha a mező tizedes értékeket is fogadjon, lásd lent a lépésköz módosítását.
  1. Vegyél fel egy Számítás típusú mezőt, és adj neki címkét.

  2. A Számítások fülön a képlet:

    {field_123_option_price} * {field_124}

    A 123 és 124 helyére a saját mezőid azonosítója kerül.

  3. Ha egész számra akarod kerekíteni az eredményt, az Eredmény kerekítése legyen Felfelé kerekítés. Ez a legközelebbi egész számra felfelé kerekít (a 3,048 például 4 lesz), ezért csak akkor használd, ha a terméknél ez a pontosság elég.

A képlet a beírt értéket a kiválasztott mértékegység szorzójával szorozza. Ha a vásárló Láb-at választ és 10-et ír be, az eredmény 10 × 0,3048 = 3,048 méter. Méter esetén a szorzó 1, az érték nem változik.

Tizedes értékek a szám mezőkben és a feltételekben

Szekció neve “Tizedes értékek a szám mezőkben és a feltételekben”

Alapból a Szám mezők egész számokkal lépkednek (a lépésköz 1), és a feltételek értéke is egész szám. Tizedes értékekhez egy szűrővel kisebb lépésközt kell megadni. A szűrőt a sablon functions.php fájljába vagy egy kódrészlet-bővítménybe teheted.

A pewc_number_field_step szűrő a szám mező lépésközét adja vissza. Két paramétere van: a jelenlegi lépésköz ($step) és a mező adatai ($item), amelyből a field_id kiolvasható.

Minden szám mezőre:

function prefix_number_field_step( $step, $item ) {
return 0.01;
}
add_filter( 'pewc_number_field_step', 'prefix_number_field_step', 10, 2 );

Csak egy mezőre:

function prefix_specific_number_field_step( $step, $item ) {
// Cseréld a saját meződ azonosítójára
if ( $item['field_id'] == 1234 ) {
return 0.01;
}
return $step;
}
add_filter( 'pewc_number_field_step', 'prefix_specific_number_field_step', 10, 2 );

Ha az első változat is aktív, az minden mezőre 0.01-et ad, ezért a második fölösleges.

Lépésköz a minimális és maximális értéknél

Szekció neve “Lépésköz a minimális és maximális értéknél”

A szám mező Minimális érték és Maximális érték beállítása a pewc_min_max_val_step szűrővel kap tizedes lépésközt. A felépítése ugyanolyan:

function prefix_min_max_val_step( $step, $item ) {
return 0.01;
}
add_filter( 'pewc_min_max_val_step', 'prefix_min_max_val_step', 10, 2 );

Ha a feltétel egy szám mezőre vonatkozik, az értékmező alapból egész számokat fogad. A pewc_condition_value_step szűrő megváltoztatja ezt. A paraméterei a jelenlegi lépésköz ($step) és annak a mezőnek az azonosítója, amelyre a feltétel vonatkozik ($field_id).

function prefix_condition_value_step( $step, $field_id ) {
return 0.01;
}
add_filter( 'pewc_condition_value_step', 'prefix_condition_value_step', 10, 2 );

A 0.01 két tizedesjegyet enged, a 0.1 egyet, a 0.001 hármat. Ha csak bizonyos mezőknél akarod, a függvényben ellenőrizd a $field_id értékét, és más mezőknél add vissza változatlanul a $step-et.

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások