ম্যাজেন্টো (1.9) গ্রাহক নিবন্ধে নতুন ক্ষেত্র যুক্ত করুন


28

আমি গ্রাহক নিবন্ধকরণ এবং অ্যাডমিন গ্রাহক তৈরির ফর্মটিতে নতুন ক্ষেত্র যুক্ত করতে চাই।

ক্ষেত্রের নাম লাইসেন্স নম্বর । আমি আমার প্রয়োজনীয়তার সাথে সম্পর্কিত অনেকগুলি লিঙ্ক সন্ধান করেছি কিন্তু সেগুলি ম্যাজেন্টোতে কাজ করে না (1.9)। এমনকি আমি এর সাথে সম্পর্কিত এক্সটেনশনটি পেয়েছি:

http://www.magentocommerce.com/magento-connect/custome-account-profile-13594.html

আমি কী ব্যবহার করে উপরের এক্সটেনশানটি ইনস্টল করলে এটি ত্রুটি দেখায়। আপনি কি আমার প্রয়োজনীয়তার সাথে কিছু ধারণা দিতে পারেন?


উপরের এক্সটেনশনে আপনি কী ত্রুটি পেয়ে
যাচ্ছেন

এটি পূর্বে এখানে জবাব দেওয়া হয়েছে: magento.stackex
بدل.

উত্তর:


55

এটি পরিষ্কার করার জন্য আপনাকে একটি নতুন এক্সটেনশন তৈরি করতে হবে।
এক্সটেনশন কল করুন StackExchange_Customer
আপনার নিম্নলিখিত ফাইলগুলির প্রয়োজন হবে:

app/etc/modules/StackExchange_Customer.xml - ঘোষণা ফাইল

<?xml version="1.0"?>
<config>
    <modules>
        <StackExchange_Customer>
            <active>true</active>
            <codePool>local</codePool>
            <depends><Mage_Customer/></depends>
        </StackExchange_Customer>
    </modules>
</config> 

app/code/local/StackExchange/Customer/etc/config.xml - কনফিগারেশন ফাইল

<?xml version="1.0"?>
<config>
    <modules>
        <StackExchange_Customer>
            <version>1.0.0</version>
        </StackExchange_Customer>
    </modules>
    <global>
        <helpers>
            <stackexchange_customer>
                <class>StackExchange_Customer_Helper</class>
            </stackexchange_customer>
        </helpers>
        <resources>
            <stackexchange_customer_setup>
                <setup>
                    <module>StackExchange_Customer</module>
                    <class>Mage_Customer_Model_Resource_Setup</class>
                </setup>
            </stackexchange_customer_setup>
        </resources>
    </global>
    <frontend>
        <layout>
            <updates>
                <stackexchange_customer>
                    <file>stackexchange_customer.xml</file>
                </stackexchange_customer>
            </updates>
        </layout>
        <translate>
            <modules>
                <StackExchange_Customer>
                    <files>
                        <default>StackExchange_Customer.csv</default>
                    </files>
                </StackExchange_Customer>
            </modules>
        </translate>
    </frontend>
</config>

app/code/local/StackExchange/Customer/sql/stackexchange_customer_setup/install-1.0.0.php- ইনস্টল ফাইল। নতুন বৈশিষ্ট্য যুক্ত করবে।

<?php
$this->addAttribute('customer', 'license_number', array(
    'type'      => 'varchar',
    'label'     => 'License Number',
    'input'     => 'text',
    'position'  => 120,
    'required'  => false,//or true
    'is_system' => 0,
));
$attribute = Mage::getSingleton('eav/config')->getAttribute('customer', 'license_number');
$attribute->setData('used_in_forms', array(
    'adminhtml_customer',
    'checkout_register',
    'customer_account_create',
    'customer_account_edit',
));
$attribute->setData('is_user_defined', 0);
$attribute->save();

app/code/local/StackExchange/Customer/Helper/Data.php - মডিউল প্রধান সহায়ক

<?php
class StackExchange_Customer_Helper_Data extends Mage_Core_Helper_Abstract
{

}

এটি গ্রাহকের জন্য আপনার বৈশিষ্ট্য যুক্ত করবে।
এটি ব্যাকএন্ডে সুন্দরভাবে কাজ করা উচিত।
দুর্ভাগ্যক্রমে আপনাকে এখনই সামনের টেম্পলেটগুলি সম্পাদনা করতে হবে কারণ ম্যাগেন্তোর কোনও ইভেন্ট বা খালি ব্লক নেই যেখানে আপনি আপনার ক্ষেত্রগুলি রাখতে পারেন।
এই জন্য আপনার নিম্নলিখিত প্রয়োজন।

app/design/frontend/base/default/layout/stackexchange_customer.xml

<?xml version="1.0"?>
<layout>
    <customer_account_edit>
        <reference name="customer_edit">
            <action method="setTemplate">
                <template>stackexchange_customer/form/edit.phtml</template>
            </action>
        </reference>
    </customer_account_edit>
    <customer_account_create>
        <reference name="customer_form_register">
            <action method="setTemplate">
                <template>stackexchange_customer/register.phtml</template>
            </action>
        </reference>
    </customer_account_create>
</layout>

এবং এখন টেমপ্লেটগুলি।

app/design/frontend/base/default/template/stackexchange_customer/register.phtml- নিবন্ধকরণ টেমপ্লেট।
এর জন্য এটির একটি ক্লোন তৈরি করুন /app/design/frontend/{package}/{theme}/template/persistent/customer/form/register.phtmlএবং এটি ফর্মের ভিতরে কোথাও sertোকান। আমার এখানে সম্পূর্ণ ফাইল পোস্ট করার দরকার নেই। আপনি দয়া করে এটি সাজান

<li>
    <label for="license_number"><?php echo $this->__('License Number') ?></label>
    <div class="input-box">
        <input type="text" name="license_number" id="license_number" value="<?php echo $this->escapeHtml($this->getFormData()->getLicenseNumber()) ?>" title="<?php echo $this->__('License Number') ?>" class="input-text" />
    </div>
</li>

/app/design/frontend/base/default/template/stackexchange_customer/form/edit.phtmlএটির জন্য একটি ক্লোন /app/design/frontend/{package}/{theme}/template/customer/form/edit.phtmlএবং ফর্মের ভিতরে কোথাও এটি প্রবেশ করান:

<li>
    <label for="license_number"><?php echo $this->__('License Number') ?></label>
    <div class="input-box">
        <input type="text" name="license_number" id="license_number" value="<?php echo $this->htmlEscape($this->getCustomer()->getLicenseNumber()) ?>" title="<?php echo $this->__('License Number') ?>" class="input-text" />
    </div>
</li>

আপনি অনুবাদ ফাইলও তৈরি করতে পারেন। বাধ্যতামূলক নয় তবে এটি রাখা ভাল

app/locale/en_US/StackExchange_Customer.csv

"License Number","License Number"

ক্যাশে সাফ করুন এবং আপনার সেট করা উচিত।


আমি আপনার পথে অনুসরণ করি তবে অ্যাডমিন ক্রেট ব্যবহারকারী পৃষ্ঠায় ফিল্ডটি প্রদর্শিত হয় না।
সেন্থিল

@senthil। তুমি ঠিক. এর জন্যে দুঃখিত. আমি ভুল ইনস্টল স্ক্রিপ্ট আটকানো হয়েছে। আমি উত্তরটি সঠিক app/code/local/StackExchange/Customer/sql/stackexchange_customer_setup/install-1.0.0.phpফাইল দিয়ে আপডেট করেছি । যেহেতু আপনি ইতিমধ্যে মডিউলটি ইনস্টল করেছেন তাই নতুন ইনস্টল স্ক্রিপ্টটি আর চলবে না। এটি আবার চালাতে আপনাকে eav_attributeকোড সহ বিশিষ্ট license_numberটেবিল থেকে এবং টেবিল থেকে core_resourceকোড সহ রেকর্ডটি মুছতে হবে StackExchange_Customer। ক্যাশে সাফ করুন এবং পৃষ্ঠাটি রিফ্রেশ করুন। ইনস্টল স্ক্রিপ্টটি আবার চালানো উচিত।
মারিয়াস

2
@ অ্যাসিডিল আপনি যদি অন্য ক্ষেত্রগুলি যুক্ত করার পরিকল্পনা করেন তবে আপনার ক্লোন হওয়া ফাইলটিতে ক্লোন install-1.0.0করা উচিত upgrade-1.0.0-1.0.1এবং আপনার পরিবর্তনগুলি করা উচিত । তারপর পরিবর্তন versionট্যাগে config.xmlকরতে 1.0.1। এখানে আপগ্রেড স্ক্রিপ্টগুলি কীভাবে কাজ করে তা দেখুন: magento.stackexchange.com/q/26313/146
মারিয়াস

1
হাই স্যার, আপনি আমাদের একাধিক গুণাবলী কীভাবে সেট করবেন তা জানাননি? আমি আপনার কোডটি সংশোধন করে একাধিক অ্যাটর্নের জন্য চেষ্টা করেছি। এখনও কাজ করছে না . দয়া করে ব্যাখ্যা করুন
প্রতীক

1
@ হারিস, আপলোডগুলির জন্য আপনাকে সম্ভবত অতিরিক্ত কিছু করতে হবে, তবে আমি জানি না।
মারিয়াস

0

ধন্যবাদ মারিয়াস, কেবল একটি বিষয়, ক্ষেত্রটি নিবন্ধকরণের জন্য চেকআউট বিলিংয়ের তথ্যে প্রদর্শিত হবে না।

আমি কীভাবে চেকআউট রেজিস্ট্রেশনে ফিল্ড শো করব?

ধন্যবাদ

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