WooCommerce-də səbət səhifəsinin qurulması. Ön tərəfdə onlayn mağaza üçün səbət və ya modul javascript yazın Kataloq üçün məlumat və işarələmənin hazırlanması




“Səbətinizi sayta necə əlavə etmək olar?” kimi suallar verən hörmətli sayt ziyarətçiləri. və s. Mən hazır həllər hazırlamıram, icra məntiqini təsvir edirəm, hər bir fərdi sayt üçün istənilən halda müəyyən şeylər əlavə etməli olacaqsınız, ona görə də həqiqətən nəyisə vidalamaq və ya əlavə etmək lazımdırsa, konsaltinq üçün pullu və pulsuz xidmətlər təqdim edirəm. və veb saytın inkişafı. Səhifənin yuxarısındakı rəy formasına yazın, hamıya cavab verəcəm.


Online mağaza. AJAX alış səbəti. 1-ci hissə: PHP funksiyaları.

Bir müddət əvvəl onlayn mağaza üçün alış-veriş səbətini necə yaratmaqla bağlı məqalələr silsiləsində bir az yeniləməyə qərar verdim. Ümumiyyətlə, dəyişmək istədiyim bəzi çatışmazlıqlar, qeyri-dəqiqliklər və yerlər var, amma əsas məsələ səhifəni yenidən yükləmədən “Səbətə əlavə et” düyməsinin işlək olmasıdır. Nə üçün? Mükəmməlliyin həddi yoxdur... fikrimcə, rahatdır. Əvvəlcə AJAX istifadə edərək onlayn mağaza səbəti yaratmaq üçün nə lazım olduğunu başa düşməliyik:

  • Səbətin özü ilə işləmək üçün PHP funksiyaları dəsti: əlavə etmək, silmək, kəmiyyəti yeniləmək və s.
  • Əlavə etmək, silmək və redaktə etmək düymələri üçün cavabdeh olacaq JavaScript funksiyaları dəsti (Mən adətən JavaScript sözünü eşidəndə qorxuram, lakin burada mürəkkəb bir şey olmayacaq)
  • Səhifəni yenidən yükləmədən alış-veriş səbətinin işləməsinə cavabdeh olacaq backend faylları
  • Hələ deyilsə, mağazanın məhsullarını ehtiva edən verilənlər bazasında bir cədvəl.
  • jQuery kitabxanası. Mən ondan istifadə edəcəyəm (bəlkə də bir gün JsHttpRequest istifadə edərək eyni şeyi necə edəcəyimi təsvir edəcəyəm), çünki AJAX texnologiyası ilə işləmək üçün daha sadə və daha intuitivdir.
  • Aydınlıq üçün nümunə faylları hazırladım, yükləyə bilərsiniz
  • İlk addım alış səbəti üçün PHP funksiyalarını inkişaf etdirmək olacaq. Belə ki:

  • Elementi səbətə əlavə edin. Məhsulun identifikatoru ona göndərilir. Seansda səbətə əlavə edilmiş elementləri ehtiva edən massivin strukturunu dəyişdirəcəyəm, indi aşağıdakı kimi olacaq:

    $_SESSION["məhsullar"] – səbətdəki məhsullara cavabdeh olan massiv, strukturu aşağıdakı kimi olacaq:

    $_SESSION["məhsullar"]=array("məhsul_identifikatoru_1"=>massiv("xərc"=>"məhsul_1_qiyməti", "count"=>"səbətdə_məhsul_1_miqdar"), "məhsul_identifikatoru_2"=>massiv("xərc"=>"məhsul_qiyməti_1 ", "count"=>"quantity_of_product_2_in_cart"), // və s. $_SESSION["products_incart"] dəyişəni səbətdəki məhsulların sayına cavabdeh olacaq və $_SESSION["cart_cost"] dəyişəni cavabdeh olacaq. arabanın dəyəri üçün. Səbətdəki mal massivinin belə bir təşkili ilə işləmək, yəni malların sayını silmək, dəyişdirmək və saymaq daha asandır. Beləliklə, funksiyanın özünü yazırıq: /** * parametrlər: * $product_id – məhsul identifikatoru * $count – əlavə olunacaq məhsulun miqdarı, default 1, */ funksiya add_to_cart($product_id, $count=1)) ( / /məhsulun daha əvvəl səbətə əlavə edilib-edilmədiyini yoxlayın: if (!empty($_SESSION["products"][$product_id]) ( //məhsul artıq əlavə olunubsa, miqdarı bir dəfə artırın: $_SESSION[" products"][$product_id][ "count"]++; ) else ( //boş massiv yaradın, hər ehtimala qarşı onsuz da edə bilərsiniz. $_SESSION["products"][$product_id]=array() ; //məhsulun qiymətini verilənlər bazasından əldə edin: $q=”FROM product_table” id="$product_id"” //sorğu nəticəsini massivə ayırın: $add_product=mysql_fetch_assoc(mysql_query($q) ); //məhsulu səbətə əlavə edin: $_SESSION["products" ][$product_id]["cost"]=$add_product["price"]; $_SESSION["products"][$product_id]["count "]=$count ) /* səbətin qiymətini və malların miqdarını hesablamaq üçün funksiyaları çağırın burada mən yenidən dəyişiklik edəcəm, səbətdəki malların sayını deyil, malların özünü sayacağıq, yəni. səbətdə 5 ədəd 1-ci maddə, 2-ci maddədə 2 ədəd varsa, səbətdə 7 deyil, 2 ədəd var. Və daha bir şey, səbətin məbləğinin hesablanmasını və nömrəsini birləşdirmək yaxşıdır. onun içindəki elementləri bir funksiyaya çevirir: update_cart() */ update_cart(); ) Səbətə əşya əlavə etmək funksiyası hazırdır.

  • update_cart() funksiyası səbətin qiymətini və içindəki məhsulların sayını hesablayacaq: funksiya update_cart() ( //biz səbətdəki məhsulların sayını //$_SESSION["məhsullarındakı elementlərin sayı kimi hesablayırıq. "] standart PHP count() funksiyasından istifadə edərək massiv: $ _SESSION["products_incart"]=count($_SESSION["products"]); //ilk olaraq dəyəri sıfırlayın: $_SESSION["cart_cost"]=0; // səbətin qiyməti (qiymətləri kəmiyyətə görə vurun və əlavə edin): foreach ($ _SESSION["məhsullar"] kimi $key=>$value) ($_SESSION["cart_cost"]+=$_SESSION["məhsullar"][$key ]["cost"]* $_SESSION["products"][$ key]["count"] ) ;
  • Səbətdəki malların miqdarını dəyişdirəcək funksiya: /** * add_to_cart() funksiyası ilə eyni parametrləri qəbul edir */ funksiyası update_product_count($product_id, $count) ( $_SESSION["products"][$product_id] [" count"]=$count; //qiyməti yenidən hesablamaq üçün update_cart()-a zəng edin.
  • Bizə lazım olan son şey məhsulu səbətdən silməkdir: funksiyası remove_from_cart($product_id) ( unset($_SESSION["products"][$product_id]); update_cart(); )
  • Hamısı budur, səbətlə işləmək üçün funksiyalar hazırdır, səhifədə məhsulların siyahısını göstərmək və "Səbətə əlavə et" düymələrini yaratmaq qalır. Təqdim olunan funksiyaları bir faylda, məsələn, cart.php-də yerləşdirmək və daxil bəyanatı ilə əlaqələndirmək daha yaxşıdır. Qeyd etmək lazımdır ki, mən əlavə $count dəyişənini add_to_cart() funksiyasında təqdim etmişəm ki, istifadəçinin səbətə əlavə et düyməsini kliklədikdə səbətin interfeysində deyil, əşyanın miqdarını müəyyən etməsini istəyirsən. Bundan əlavə, mən bu dəyişənin dəyərlərini ötürməyəcəyəm, lakin 1 olan standart dəyəri istifadə edəcəyəm. Növbəti məqalədə biz əsas şeyi yaradacağıq - araba ilə işləmək üçün JavaScript funksiyaları.

    Müəllifdən: onlayn mağazada orta çeki artırmaq lazımdırsa, o zaman ağlınıza gələn ən sadə və məntiqli həllərdən biri alıcı üçün onlayn alış-veriş səbəti yaratmaqdır. Onun köməyi ilə bir insan bir məhsulu deyil, eyni anda bir neçə məhsul ala biləcək. Həll banal görünür, lakin bir çox sahibkar hələ də buna gəlməyib. Onlayn mağazanın veb saytında alış-veriş səbətini tez və düzgün şəkildə necə yaratmağı öyrənmək istəyirsinizsə, bu məqaləni oxuyun.

    Hər hansı bir az və ya çox böyük adi mağazada, girişdə ziyarətçiyə alışlarını qoya biləcəyi xüsusi bir qab təklif olunur. Hələ iyirminci əsrdə. Bu həll müştərilər üçün təkcə malların köçürülməsini asanlaşdırmaq üçün deyil, həm də onları mümkün qədər çox alış-veriş etməyə təşviq etmək üçün təqdim edilmişdir. Razısınızmı ki, mağazaya girib, səbət götürüb içərisində kiçik bir paket çips daşımaq bir növ axmaqlıqdır? Bu və ya digər şəkildə yuyulmaq üçün bir şey əlavə etməyinizə əmin olun.

    Onlayn mağazada alış-veriş səbəti eyni şəkildə işləyir. Bu, bir neçə məhsulun alınması prosesini xeyli asanlaşdırır və orta hesabını artırır. Əlbətdə ki, alıcıya "təzyiq" amili oflayn nöqtələrlə müqayisədə əhəmiyyətli dərəcədə aşağıdır, çünki malların daşınması və digər insanların qarşısında boş qablarla gəzmək üçün fiziki ehtiyac yoxdur, lakin hələ də mövcuddur.

    Onlayn layihə yaratmağın başlanğıcındasınız? Bundan sonra başlamaq daha yaxşıdır. Artıq bu mövzu haqqında az və ya çox şey bilirsiniz? Sonra birbaşa sayt üçün veb alış-veriş səbəti yaratmağa davam edirik.

    Alış-veriş səbəti yaratmaq üçün addım-addım təlimat

    Alış-veriş arabalarının müxtəlif versiyaları var, lakin biz PHP əsasında yaradılmış onlayn mağazalar üçün klassik modulun hazırlanmasını nəzərdən keçirəcəyik. Bir qayda olaraq, o, görkəmli yerdə - yuxarı sağ küncdəki saytın başlığında yerləşdirilir. Kiçik səbət, neçə mal alacağınızı və hansı məbləğə alacağınızı göstərən bir növ göstəricidir.

    Beləliklə, onlayn mağaza üçün alış-veriş səbətini necə yaratmaq barədə addım-addım təlimat:

    1. header.php adlı faylı açın. O, saytınızın kök qovluğunda yerləşir. Sonra, gələcək səbətimizin əsas dəyərlərini tərtibata daxil edin:

    Səbətdəki əşyalar: ədəd.
    Yoxla

    < div class = "smalcart" >

    < strong >Səbətdəki əşyalar:< / strong >PC.

    < br / > < a href = "" >Yoxla< / a >

    < / div >

    Bu halda, $smal_cart massivinin məzmunu istifadə olunur. Bir az sonra əsas onlayn mağaza şablonunda əlçatan olacaq. Bunu etmək üçün bir sıra müəyyən hərəkətləri yerinə yetirməli olacaqsınız.

    2. Səbətin sadə və ahəngdar görünüşü üçün style.css faylına aşağıdakı üslubları əlavə edin:

    #header .smalcart ( float: sağ; hündürlük: 55px; padding: 10px; padding-sol: 15px; kənar: 10px; haşiyə: 1px bərk boz; haşiyə radiusu: 10px; -moz-border-radius: 10px; -webkit -border-radius: 10px fon: #E6DEEA;

    #başlıq .smalcart (

    üzmək: sağa;

    hündürlük: 55px;

    doldurma: 10px;

    doldurma - sol: 15px;

    kənar: 10px;

    haşiyə: 1px bərk boz;

    sərhəd - radius: 10px;

    Moz - sərhəd - radius: 10px;

    Webkit - sərhəd - radius: 10px;

    fon: #E6DEEA;

    Bundan sonra artıq onlayn mağazanın görünüşündə vizual dəyişikliklərə baxa bilərsiniz.

    3. İndi biz səbətin sistem strukturunu daha dərindən araşdırmalıyıq. Səbət modulu ayrıca səhifə olmadığı üçün onun üçün əlavə nəzarətçi yaratmağa ehtiyac yoxdur. Görünüş artıq şablonda göstərilir, ona görə də baxışları inkişaf etdirmirik. Gəlin özümüzü yalnız model parametri üzərində işləməklə məhdudlaşdıraq.

    Bunu etmək üçün proqram qovluğuna, sonra isə modellərə keçin. Bundan sonra cart.php adlı fayl yaradın. Ona aşağıdakı məzmunu əlavə edin:

    sinif Application_Models_Cart ( funksiya addToCard($id, $count=1) ( $_SESSION['cart'][$id]=$_SESSION["səbət"][$id]+$count;return true; ) funksiyası delFromCart($ id, $count=1)() funksiyası clearCart()() )

    sinif Application_Models_Cart

    addToCard funksiyası($id, $count=1)

    $_SESSION['cart'][$id] = $_SESSION["səbət"][$id] + $count; doğru qayıt;

    funksiyası delFromCart($id, $count=1) ()

    clearCart() funksiyası ( )

    Bu model araba modulunun məzmununda olan məlumatları yeniləməyə imkan verir. Hələlik, yalnız məhsul əlavə etmək funksiyası kifayət edəcək, lakin gələcəkdə xüsusi interfeyslər hazırlamaq lazımdır ki, müəyyən bir məhsulu silmək və ya bütün səbəti boşaltmaq mümkün olsun.

    Səbətdəki məhsullar haqqında məlumat $_SESSION massivində olacaq. Bu, açarların məhsul identifikatorları olduğu və dəyərin səbətə əlavə olunan məhsulların sayı olduğu assosiativ massivdir. Minimalist strategiya məlumatın kukilərə ötürülməsi prosesini sadələşdirəcək.

    Beləliklə, biz hazır Application_Models_Cart verilənlər bazası əldə etdik. İndi onu aktivləşdirməlisiniz.

    4. Bundan əvvəl modulun daha düzgün işləməsi üçün href atributunda da dəyişikliklər edək: