ตั้งแต่อัพเกรดเป็น Magento รุ่นล่าสุดฉันสังเกตเห็นว่ามีรายการใหม่ปรากฏขึ้นในหน้าเช็คเอาต์เพื่อขอชื่อลูกค้า / ชื่อกลาง
ฉันจะลบรายการ "ชื่อกลาง / เริ่มต้น" จากหน้าเช็คเอาต์ได้อย่างไร
ตั้งแต่อัพเกรดเป็น Magento รุ่นล่าสุดฉันสังเกตเห็นว่ามีรายการใหม่ปรากฏขึ้นในหน้าเช็คเอาต์เพื่อขอชื่อลูกค้า / ชื่อกลาง
ฉันจะลบรายการ "ชื่อกลาง / เริ่มต้น" จากหน้าเช็คเอาต์ได้อย่างไร
คำตอบ:
ฉันมีปัญหาเดียวกันเมื่อปรับปรุงไปวีโอไอพี CE 1.9.2.1จากวีโอไอพี CE 1.9.2.0 การอัปเดตทำให้ชื่อกลางแสดงขึ้น แต่เมื่อฉันตรวจสอบผู้ดูแลระบบSystem > Configuration > Customers > Customer Configuration > Name and Address Options
การตั้งค่า "แสดงชื่อกลาง (เริ่มต้น)" แสดงข้อความ "ไม่" - ซึ่งเป็นสิ่งที่ฉันต้องการ ฉันเปลี่ยนการตั้งค่าเป็น "ใช่" จากนั้นกลับสู่ "ไม่" ก่อนคลิก "บันทึกการกำหนดค่า" และสิ่งนี้จะลบชื่อกลาง / เริ่มต้นจากการชำระเงินทันทีเมื่อฉันรีเฟรชหน้าเว็บ
ในกรณีของฉันฉันกำลังปรับปรุงร้านค้าจาก Magento 1.8.x เป็น Magento 1.9.x มันอยู่ในสภาพแวดล้อมการพัฒนาของฉันที่ฉันอัปเดตจาก 1.9.2.0 เป็น 1.9.2.1 เพื่อให้เว็บไซต์สดเป็นปัจจุบันเมื่อเราเรียกใช้การอัปเกรดจาก 1.8.x เป็น 1.9.x เราจะต้องอัปเดตการตั้งค่าผู้ดูแลระบบจำนวนมากซึ่งเราวางแผนที่จะทำโดยตรงในฐานข้อมูลด้วยแบบสอบถาม ในฐานข้อมูลคุณสามารถดูว่า Magento เปลี่ยนการตั้งค่าชื่อกลางอย่างไร
ตาราง `จับ core_config_data` การตั้งค่าผู้ดูแลระบบ "แสดงชื่อกลาง (เริ่มต้น) `core_config_data`.`path`='customer/address/middlename_show'
ที่มีการบันทึกที่
บันทึกนี้เก็บการตั้งค่าในฟิลด์ `value` (0 =" ไม่ ", 1 =" ใช่ ") ฟิลด์นี้จะไม่เปลี่ยนไปเมื่อชื่อกลางปรากฏขึ้นโดยการอัพเกรดวีโอไอพี CE 1.9.2.1 หากคุณบันทึกการเปลี่ยนแปลงใน "แสดงชื่อกลาง (เริ่มต้น)" ในการตั้งค่าผู้ดูแลระบบหลังจาก Magento ทำการเปลี่ยนแปลงในระหว่างการอัปเดตเป็น 1.9.2.1 มันจะเปลี่ยนค่า `core_config_data` ที่นี่
การอัปเดตเป็น 1.9.2.1 ไม่ได้เปลี่ยนเร็กคอร์ดใน `core_config_data` และดังนั้นสิ่งที่จะแสดงในการตั้งค่าผู้ดูแลระบบ แต่การปรับปรุงจะเปลี่ยนระเบียนที่แตกต่างกันของตารางที่แตกต่างกัน
ในกรณี dev ของฉันหลายวีโอไอพีตาราง `eav_attribute` มี 2 "ชื่อกลาง"` attribute_code` (s) ที่ `attribute_id` (s) เป็น6และ21 `customer_eav_attribute`ตารางชุดการแสดงผลของแอตทริบิวต์ที่มีข้อมูล` is_visible`
`is_visible` = 0
ได้ `is_visible` = 1
มันก็กลายเป็น`is_visible`=0
อีกครั้งและฟิลด์ชื่อกลาง / เริ่มต้นหายไปจาก CheckoutการอัปเดตMagento CE 1.9.2.1พลิกการตั้งค่าชื่อกลางในตาราง "customer_eav_attribute`" โดยไม่มีผลต่อสิ่งที่ปรากฏในผู้ดูแลระบบ Magento ภายใต้การตั้งค่า "แสดงชื่อกลาง (เริ่มต้น)" คุณสามารถแก้ไขวิธีการตั้งค่าที่ผู้ดูแลระบบปรับได้ตามปกติโดยไม่ต้องทำการปรับเปลี่ยนเทมเพลตโดยการสลับการตั้งค่า "แสดงชื่อกลาง (เริ่มต้น)"
ถ้าด้วยเหตุผลบางอย่างคุณจำเป็นต้องถ่ายโอนการตั้งค่าผู้ดูแลระบบนี้ในหลาย ๆ สำเนาของร้านค้าหรือในชุดของการปรับปรุงผู้ดูแลระบบเช่นในขณะที่อัพเกรดร้านค้าเพื่อให้ตรงกับสภาพแวดล้อม dev ... คุณสามารถใช้คำสั่ง SQL ต่อไปนี้สำหรับการตั้งค่านี้ หากคุณทราบว่า "ชื่อกลาง" คือ `attribute_id` 6 และ 21 ในร้านของคุณนี่เป็นมาตรฐานสำหรับ Magento แต่เพื่อความปลอดภัยให้ตรวจสอบตาราง 'eav_attribute` ของคุณก่อนอีกครั้ง)
UPDATE customer_eav_attribute SET is_visible = 0 WHERE attribute_id IN (6, 21);
ตัวเลือกการตั้งค่าระบบได้มีรูปแบบการแบ็กเอนด์ ( Mage_Adminhtml_Model_System_Config_Backend_Customer_Show_Customer
) ที่มี_afterSave
วิธีการที่จะทำให้การเปลี่ยนแปลงเดียวกันในแอตทริบิวต์ลูกค้า EAV (ตารางที่: customer_eav_attribute
)
ค่าตัวเลือกการกำหนดค่าระบบและค่าแอ็ตทริบิวต์ EAV is_visible
อาจไม่จำเป็นต้องซิงค์
การสลับสวิตช์สองสามครั้งจะช่วยแก้ไขหรือถ้าคุณชอบฉันและใช้สคริปต์การติดตั้ง / อัปเกรดสำหรับทุกสิ่งคุณสามารถทำสิ่งต่อไปนี้:
Mage::getModel('core/config')
->saveConfig('customer/address/middlename_show', 0);
try {
$attribute = Mage::getSingleton('eav/config')
->getAttribute('customer', 'middlename')
->setIsVisible(0)
->save();
$attribute = Mage::getSingleton('eav/config')
->getAttribute('customer_address', 'middlename')
->setIsVisible(0)
->save();
} catch (Exception $e) {
Mage::logException($e);
throw $e;
}
$attribute = Mage::getSingleton('eav/config') ->getAttribute('customer_address', 'middlename') ->setIsVisible(0) ->save();
วิธีที่ง่ายที่สุด:
วีโอไอพีเวอร์ชั่น 1.9.2.1
System > Configuration > Customers > Customer configuration > Name and Address Options
Show Middle Name (initial)
= No
การลบ{{depend middlename}}{{var middlename}}
เช่น @sr_magento แนะนำในคำตอบของเขาจริง ๆ แล้วไม่ได้ลบลบShow Middle Name (initial)
ฟิลด์จากหน้าเช็คเอาต์ตัวเอง โดยจะลบออกจากพื้นที่ที่มีการแสดง / พิมพ์ข้อมูลที่อยู่ลูกค้าเช่นในพื้นที่ผู้ดูแลระบบเทมเพลต PDF และอีเมล
ไม่จำเป็นต้องลบฟิลด์ออกจากเทมเพลตอีเมล นี่คือ overkill และคุณจะต้องเพิ่มรายการเหล่านั้นไปยังเทมเพลตอีเมลอีกครั้งในกรณีที่คุณตัดสินใจเปิดใช้งานShow Middle Name(initial)
ในอนาคต
ฉันสังเกตเห็นความผิดพลาดนี้เช่นกันหลังจากอัพเดตจากMagento CE 1.9.2.0เป็นMagento CE 1.9.2.1โดยใช้ Magento downloader ดูเหมือนว่าการปรับปรุงจะปรับการตั้งค่าสำหรับShow Middle Name (initial)
ภายใต้
System > Configuration > Customers > Customer Configuration > Name and Address Options
จาก"No"ที่จะ"ใช่" มันเกิดขึ้นกับฉันในร้านค้าหลายแห่งบนเซิร์ฟเวอร์ที่แตกต่างกัน
หากต้องการยกเลิกการตั้งค่าให้กลับเป็น"ไม่"และบันทึกการกำหนดค่า Show Middle Name (initial)
ข้อมูลจะไม่ถูกแสดงบนหน้าเช็คเอาต์
Address Templates
คุณแนะนำไม่ได้เปลี่ยนช่องป้อนข้อมูลของหน้าชำระเงินในส่วนหน้าของร้านค้า จะมีผลเฉพาะเทมเพลตสำหรับการพิมพ์ที่อยู่ โปรดอ่านเอกสารดังต่อไปนี้ คุณถูกต้องเกี่ยวกับพื้นที่ของลูกค้าในแผงผู้ดูแลระบบ ฉันจะใช้ถ้อยคำนี้เป็นส่วนหนึ่งของคำตอบอีกครั้ง
หากคุณต้องการลบโดยตรงจากไฟล์แล้ว
เปิดไฟล์ต่อไปนี้
app => design => frontend => base => default => template => customer => widget => name.phtml
ค้นหาif ($this->showMiddlename())
ความคิดเห็นออกหรือลบที่สมบูรณ์ถ้าคำสั่ง