WooCommerce চেকআউট টেমপ্লেটে বিলিংয়ের ক্ষেত্রগুলিকে কীভাবে পুনঃক্রম করতে হবে? [বন্ধ]


15

আমি ক্রিয়া এবং ফিল্টার ব্যবহার করে WooTheme এর কাস্টমাইজিং চেকআউট ক্ষেত্রগুলি ব্যবহার করে একটি মাদলিব স্টাইল চেকআউট ফর্ম তৈরি করছি ।

চেকআউট টেমপ্লেটে বিলিংয়ের ক্ষেত্রগুলি form-billing.phpএই কলটির সাথে প্রদর্শিত হবে:

<?php foreach ($checkout->checkout_fields['billing'] as $key => $field) : ?>
<?php woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); ?>
<?php endforeach; ?>

ক্ষেত্রগুলি প্রদর্শিত ক্রমটি কীভাবে পরিবর্তন করতে পারে?

বর্তমান (ডিফল্ট) ফিল্ড অর্ডারটি হ'ল:
প্রথম নাম
পদবি নাম
(আমার জন্য লুকানো)
শহর / শহর
জিপকোড
দেশ
রাষ্ট্রীয়
ইমেল
ফোন

ডিফল্ট আদেশ:
স্ক্রিনশট

আমি ক্ষেত্রগুলি আমেরিকানদের (যেখানে আমি থাকি) আরও প্রাকৃতিক ক্রমে থাকতে চাই, তাই:
প্রথম নামের
শেষ নাম
সংস্থা (আমার জন্য লুকানো)
শহর / শহর
রাজ্য
জিপকোড
দেশের
ইমেল
ফোন

আমি কীভাবে সেরা এটি করতে পারি?

উত্তর:


28

functions.phpআপনার (শিশু) থিমের মাধ্যমেও একই কাজ করা যেতে পারে :

add_filter("woocommerce_checkout_fields", "order_fields");

function order_fields($fields) {

    $order = array(
        "billing_first_name", 
        "billing_last_name", 
        "billing_company", 
        "billing_address_1", 
        "billing_address_2", 
        "billing_postcode", 
        "billing_country", 
        "billing_email", 
        "billing_phone"

    );
    foreach($order as $field)
    {
        $ordered_fields[$field] = $fields["billing"][$field];
    }

    $fields["billing"] = $ordered_fields;
    return $fields;

}

টেমপ্লেটে পৌঁছানোর আগে ডেটা ফিল্টারিংয়ের সাথে ডাব্লুপি / ডাব্লুসিপি সবচেয়ে ভাল অনুশীলন হিসাবে সেরা উত্তর দেয় যাতে কোনও টেমপ্লেট ফাইল ওভাররাইড করা না হয়।
— লার্জান

আমার পক্ষে কাজ করেনি
— ইয়াহিয়া হুসেন

এটি কাজ করতে ব্যবহার করে তবে আর তা করে না। আমি মনে করি এটি কারণ চেকআউট জেএস কার্যকরভাবে ক্রম পরিবর্তন করে।
— কোডকিপল

4
এটি করার বর্তমান $fields['billing']['billing_country']['priority'] = 10; $fields['billing']['billing_phone']['priority'] = 20;
— উপায়টি

5

উত্তর জন্য Dbranes ধন্যবাদ।

প্রতিস্থাপন করুন:

<?php foreach ($checkout->checkout_fields['billing'] as $key => $field) : ?>
<?php woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); ?>
<?php endforeach; ?>

সঙ্গে:

<?php 
// order the keys for your custom ordering or delete the ones you don't need
$mybillingfields=array(
    "billing_first_name",
    "billing_last_name",
    "billing_company",
    "billing_address_1",
    "billing_address_2",
    "billing_city",
    "billing_state",
    "billing_postcode",
    "billing_country",
    "billing_email",
    "billing_phone",
);
foreach ($mybillingfields as $key) : ?>
<?php woocommerce_form_field( $key, $checkout->checkout_fields['billing'][$key], $checkout->get_value( $key ) ); ?>
<?php endforeach; ?>

2
এই কোডটি একটি অভ্যন্তরীণ ওয়াহকমার্স ফাংশন থেকে। প্রথম উত্তরের কোড [একটি ফিল্টার] ব্যবহার করা আরও ভাল।
— অ্যাডেরলাইক

আমার জন্য এটি কাজ করে না। সর্বোত্তম উপায় হ'ল প্রতিটি ক্ষেত্রের "অগ্রাধিকার" ব্যবহার করা, এরকম কিছু: $ ক্ষেত্রগুলি ['বিলিং'] ['বিলিং_কাউন্টি'] ['অগ্রাধিকার'] = 10; $ ক্ষেত্রগুলি ['বিলিং'] ['বিলিং_ফোন'] ['অগ্রাধিকার'] = ২০; হতে পারে এটি ওউকমার্সের নতুন সংস্করণগুলির কারণে, তবে আমি জানি না।
— রুহানবিদার্ট

2

আপনি আপনার থিমটিতে একটি অনুলিপি তৈরি করতে পারেন এবং চেকআউট ফর্মটি সরবরাহ করে এমন টেম্পলেটটি সম্পাদনা করতে পারেন।

প্লাগইন ডকুমেন্টেশন থেকে অভিযোজিত :

উদাহরণ
অ্যাডমিন অর্ডার বিজ্ঞপ্তি অতিক্রম করতে, অনুলিপি করুন: woocommerce/templates/checkout/form-checkout.php
থেকে
yourtheme/woocommerce/checkout/form-checkout.php

[হালনাগাদ]

এই ফাইলটি সালে ঠিক আগে ক্ষেত্র ছাপা হচ্ছে, এই কর্ম হুক দেওয়া হল: do_action('woocommerce_before_checkout_billing_form', $checkout);।

সুতরাং, থিমের functions.phpবা কাস্টম প্লাগইনে এই ক্রিয়াটি যুক্ত করা এবং ওপি তার উত্তরে দেখায় ক্ষেত্রগুলি পুনরায় সাজানোর বিষয়টি কেবল বিষয় । টেমপ্লেটটি ওভাররাইড করার প্রয়োজন নেই, বা হ্যাঁ যদি আরও কাস্টমাইজেশন প্রয়োজন হয়।


আপনি উল্লিখিত টেম্পলেটটি আপনাকে কেবল <?php do_action('woocommerce_checkout_billing'); ?>পাইকারী ঘুরে বেড়াতে দেয় ।
— এম-টরিন

আমার উল্লেখ করা উচিত ছিল যে আমি প্রকৃত প্লাগইন ফাইলগুলি পরীক্ষা করে দেখিনি। আপনার উত্তরটি উত্তর আপডেট এবং প্রসারিত ধন্যবাদ।
— brasofilo
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.