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.
Két dátum közti napok száma
Szekció neve “Két dátum közti napok száma”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.
Mezők
Szekció neve “Mezők”- Vegyél fel két Dátum mezőt: az egyik a kezdő, a másik a záró dátum.
- Vegyél fel egy Szám mezőt az eredménynek.
- 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ésupdateesemé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.
Törtek a méretekben
Szekció neve “Törtek a méretekben”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. rész: a törtmezők felvétele
Szekció neve “1. rész: a törtmezők felvétele”- 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).
- Vegyél fel egy Kiválasztás mezőt, amelynek opciói a törtek (például 1/8, 1/4).
- 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). - 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.
- Ismételd meg a többi mérettel (például Magasság).
2. rész: a törtek a számításban
Szekció neve “2. rész: a törtek a számításban”-
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_1752helyére az egész szám mező azonosítója, afield_1753helyére a törtválasztó mező azonosítója kerül. -
Ha nem akarod megjeleníteni a termékoldalon, kapcsold be a Számítás elrejtése? beállítást.
-
Állítsd be a Tizedesjegyek értékét megfelelő számra.
-
Ismételd meg a magassággal.
3. rész: a terület kiszámítása
Szekció neve “3. rész: a terület kiszámítása”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.
Átváltás láb és méter között
Szekció neve “Átváltás láb és méter között”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. rész: a mértékegység-választó
Szekció neve “1. rész: a mértékegység-választó”- 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ó.
- Az Opciók fülön vegyél fel két opciót: Láb és Méter.
- Az Ár oszlopba az átváltási szorzót írd: a Láb mellé
0.3048, a Méter mellé1. - 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.
- Jegyezd fel a mező azonosítóját (például
123).
2. rész: a mért érték
Szekció neve “2. rész: a mért érték”- Vegyél fel egy Szám típusú mezőt, és adj neki címkét.
- A Minimális érték legyen
0. - Állítsd be a Tizedesjegyek értékét a kívánt pontosságra.
- 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.
3. rész: az átváltás
Szekció neve “3. rész: az átváltás”-
Vegyél fel egy Számítás típusú mezőt, és adj neki címkét.
-
A Számítások fülön a képlet:
{field_123_option_price} * {field_124}A
123és124helyére a saját mezőid azonosítója kerül. -
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.
Lépésköz a szám mezőkben
Szekció neve “Lépésköz a szám mezőkben”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 );Tizedes érték a feltételekben
Szekció neve “Tizedes érték a feltételekben”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: