ผู้คนถูกจัดอยู่ในลำดับ php ของรายชื่อสมาชิกอย่างไร รหัสทางออกสำหรับแบบฟอร์มเว็บไซต์และคอมไพเลอร์

โกลอฟนา / การแก้ไขปัญหา

ปลั๊กอินการจัดการสมาชิกและการสมัครสมาชิกที่สมบูรณ์แบบที่สุดสำหรับ WordPress

Paid Memberships Pro ได้รับการออกแบบมาสำหรับไซต์เนื้อหาพรีเมียม สโมสร/สมาคม ผลิตภัณฑ์สมัครสมาชิก จดหมายข่าว และอื่นๆ อีกมากมาย! ปลั๊กอินเพิ่มแหล่งรายได้ใหม่ให้กับไซต์ของคุณและมีความยืดหยุ่นเพียงพอที่จะตอบสนองความต้องการของธุรกิจออนไลน์และออฟไลน์ทั้งหมด

ง่ายต่อการติดตั้งและใช้งาน – ปรับแต่งได้อย่างล้ำลึก!

  • ไม่จำกัดระดับด้วยราคาสมาชิกที่ยืดหยุ่น
  • รวมเกตเวย์การชำระเงินยอดนิยม 6 รายการ
  • ตัวเลือกมากมายสำหรับการจำกัดเนื้อหา
  • รายงานที่ปรับแต่งได้และแดชบอร์ดสมาชิก
  • ส่วนเสริมระดับพรีเมียมมากกว่า 60 รายการเพื่อขยายและปรับแต่ง
  • GPL 100% และบูรณาการกับบริการของบุคคลที่สาม

ไซต์ที่ใช้งาน Paid Memberships Pro ใช้เพื่อ:

  • การสร้างองค์กรวิชาชีพที่มีสมาชิกนับพันคน
  • รับเงินสำหรับอีเลิร์นนิงและบทเรียนดิจิทัล
  • ยอมรับการชำระเงินสำหรับเนื้อหา พอดแคสต์ วิดีโอ และอื่นๆ
  • สร้างองค์กรทางสังคมส่วนตัวสำหรับกลุ่มผลประโยชน์ที่มีเอกลักษณ์เฉพาะ
  • ไดเรกทอรีที่มีประสิทธิภาพ Rozrobka หรือไซต์รายการตามหัวข้อหรือภูมิภาค
  • เสนอการสมัครสมาชิกผลิตภัณฑ์หรือส่วนลดผลิตภัณฑ์สำหรับสมาชิกเท่านั้น

เลือกจากเกตเวย์การชำระเงินยอดนิยม

คอลเลกชันเกตเวย์ทั้งหมดของเรารวมอยู่ในปลั๊กอิน เลือกจาก PayPal, Stripe, Authorize.net, Braintree หรือ 2Checkout

กำหนดระดับสมาชิกได้ไม่จำกัด

ตั้งค่าระดับสมาชิกที่เหมาะกับธุรกิจของคุณมากที่สุด ไม่ว่าจะเป็นการชำระเงินแบบครั้งเดียวหรือการสมัครสมาชิกซ้ำ (รายปี รายเดือน รายสัปดาห์ รายวัน) คุณสามารถเข้าร่วมในช่วงต่อๆ ไปได้ รวมถึงการทดลองใช้ฟรี การทดลองใช้ตามระยะเวลาที่กำหนด หรือการทดลองใช้ตามราคา "ช่วงแนะนำ"

ระดับสมาชิกให้การเข้าถึงสมาชิกได้อย่างไม่จำกัด (รวมถึงเพจ โพสต์ หมวดหมู่ วิดีโอ ฟอรั่ม ดาวน์โหลด การสนับสนุน การเข้าถึงเพจ “ตามสั่ง” เดี่ยว และอื่นๆ)

ควบคุมประสบการณ์ผู้ใช้ตั้งแต่ต้นจนจบ

สมาชิกของคุณสามารถอัปเดตข้อมูลการเรียกเก็บเงินหรือเปิดใช้งานบัญชีของตนได้โดยตรงบนเว็บไซต์ของคุณ ไม่ว่าการสมัครสมาชิกจะเปิดใช้งานอยู่ก็ตาม มันจะเปิดใช้งานบนเกตเวย์การชำระเงินสำหรับคุณ

ส่วนเสริมเพื่อช่วยให้คุณทำสิ่งต่างๆ ได้มากขึ้น

คุณสมบัติของสมาชิกของเรากำลังขยายและบูรณาการกับบริการสามฝ่ายผ่านไลบรารีของเราพร้อมส่วนเสริมมากกว่า 60 รายการ ไลบรารีส่วนเสริมฟรีหรือจ่ายเงินของคุณช่วยให้คุณ:

  • ผสานรวมสมาชิกเข้ากับแพลตฟอร์มการตลาดผ่านอีเมล รวมถึง Mailchimp, Constant Contact, AWeber และ GetResponse
  • การเข้าถึงฟอรั่ม กลุ่ม หลักสูตร ดาวน์โหลด กิจกรรมและผลิตภัณฑ์แบบส่วนตัว
  • พันธมิตรได้รับอนุญาตให้หักเครดิตสำหรับสมาชิกที่ชำระเงิน

Paid Memberships Pro เป็นปลั๊กอิน WordPress ที่ไม่ต้องใช้แมว

ปลั๊กอินนี้เป็น GPL 100% และหาได้จากพื้นที่เก็บข้อมูล WordPress หรือบนเว็บไซต์ของเราที่ http://www.paidmembershipspro.com ปลั๊กอินเวอร์ชันล่าสุดไม่เกี่ยวข้องกับการแลกเปลี่ยนหรือใบอนุญาตเพิ่มเติมที่จำเป็น ผู้ค้าปลีกมีหน้าที่รับผิดชอบในการเพิกถอนสิ่งที่ป้อนไว้ในหน้า GitHub ของเรา

ภาพหน้าจอ

บล็อก

ปลั๊กอินนี้มี 13 บล็อก

































หน้าบัญชีสมาชิก pmpro/levels-page /account-membership-section บัญชีสมาชิก: สมาชิก pmpro/billing-page หน้าการเรียกเก็บเงินสมาชิก pmpro/account-links-section บัญชีสมาชิก: ลิงก์ pmpro/account-invoices-section บัญชีสมาชิก: ใบแจ้งหนี้ pm ชำระเงิน -ปุ่ม ปุ่มชำระเงินสมาชิก pmpro/confirmation-page หน้ายืนยันการเป็นสมาชิก

แหล่งจ่ายไฟที่เพิ่มขึ้น

ฉันต้องการวิธีการกำหนดค่า การกำหนดค่า หรือการปรับแต่งปลั๊กอิน

วิดกูกี

อย่าลืมต่อสู้กับการใช้หน่วยความจำและการเป็นสมาชิกแบบชำระเงินสำหรับปลั๊กอิน แทนที่จะพบว่ามีข้อจำกัดมากเกินไป เมนูนำทางสมาชิกมีเพียง 2 ระดับเท่านั้น การสนับสนุนแบบชำระเงินมีราคาแพงสำหรับรุ่น Pro ฉันได้ดูธีม Astra ด้วยปลั๊กอิน AR-member ซึ่งมีราคาเพียง $ 20 USD มันใช้งานได้ดีและมีเมนูหลายระดับ! ขอแนะนำชุดค่าผสมนี้สำหรับสมาชิก/สมาชิกแทน

เมื่อใดก็ตามที่เราพยายามลงทะเบียน เราจะได้รับ: มีข้อผิดพลาด JavaScript บนเพจ กรุณาติดต่อเว็บมาสเตอร์ อย่างไรก็ตาม หลังจากตรวจสอบอย่างละเอียดแล้ว ก็ไม่มีปัญหาใดๆ บนเว็บไซต์ของฉัน เราได้ปิดการใช้งานโมดูลทั้งหมดแล้วและไม่รองรับโมดูลเหล่านั้น ***อัปเดต*** หนึ่งในโมดูลของฉันที่ใช้สำหรับ AMP และเว็บแอปพลิเคชันได้เปิดใช้งาน Optimize Javascript แม้ว่าตัวปลั๊กอินจะถูกปิดใช้งาน แต่การเพิ่มประสิทธิภาพยังคงอยู่ เมื่อฉันปิดสิ่งนี้ มันก็ทำงานได้ดี

ฉันเริ่มใช้ PMPro กับลูกค้ารายแรกๆ ของฉัน เพิ่งเริ่มทำงานกับเว็บไซต์สมาชิกใหม่ PMPro มีเอกสารที่ดี แต่ฉันมีคำถามที่ไม่ได้กล่าวถึงในเอกสาร ส่งคำขอการสนับสนุน และได้รับการตอบกลับในกล่องจดหมายของฉันในเช้าวันรุ่งขึ้นผลิตภัณฑ์เป็นเวลาหลายปี เยี่ยมมาก!

ผู้เข้าร่วมและผู้จัดจำหน่าย

"Paid Memberships Pro" เป็นโครงการที่มีโค้ดโอเพ่นซอร์ส ผู้เข้าร่วมต่อไปนี้มีส่วนช่วยในการพัฒนาปลั๊กอิน:

ผู้เข้าร่วม

บันทึกการเปลี่ยนแปลง

2.0.7 — 2019-05-30

  • การแก้ไขข้อบกพร่อง: เปลี่ยนค่า นอกเหนือจากเครื่องหมายวันที่เริ่มต้นที่สามารถนำมาใช้อย่างไม่ถูกต้องในการสมัครสมาชิก Stripe
  • การแก้ไขข้อบกพร่อง: แก้ไขปัญหาที่รหัสย่อของสมาชิกจะไม่ถูกใช้ในอันดับที่ถูกต้องและอื่นๆ อีกมากมาย โดยให้ชื่อต่ำกว่าหนึ่งระดับ
  • การแก้ไขข้อบกพร่อง: รายการผสมที่ที่อยู่อีเมลไม่ถูกต้องได้รับการปรับอย่างรวดเร็วเป็นการกำหนดค่าอีเมลในหน้าการเรียกเก็บเงินที่อัปเดต (ขอบคุณเจสสิก้าโทมัส)
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: ค่าธรรมเนียมสำหรับแท็ก hr ในการชำระเงินช่องผู้ใช้เพื่อความสอดคล้องมีการเปลี่ยนแปลง
  • การเพิ่มประสิทธิภาพ: คลิกที่เมตาบ็อกซ์ลำดับความสำคัญจนกระทั่งปรากฏอยู่สูงขึ้นในแถบด้านข้างขวา

2.0.6 — 2019-05-30

  • ความปลอดภัย: ขณะนี้ใช้ wp_safe_redirect เมื่อเป็นไปได้ โดยเฉพาะอย่างยิ่งใน include/login.php ซึ่งใช้พารามิเตอร์ URL เปลี่ยนเส้นทางที่ผู้ใช้ระบุ (ขอบคุณ PluginVulnerabilities.com)

2.0.5 — 2019-04-25

  • การแก้ไขข้อบกพร่อง: แก้ไขข้อผิดพลาดร้ายแรงเมื่อเปลี่ยนเป็น 2Checkout
  • การแก้ไขข้อบกพร่อง: คืนข้อผิดพลาดเมื่อตั้งค่า PMPro โดยใช้ WP-CLI
  • การแก้ไขข้อบกพร่อง: แก้ไขข้อผิดพลาดในการอัพเกรดฐานข้อมูลในสภาพแวดล้อม localhost (ขอบคุณ codezz บน GitHub)
  • การแก้ไขข้อบกพร่อง: แก้ไขปัญหาที่อีเมลบัตรเครดิตที่กำลังจะหมดอายุไม่มีข้อมูลผู้ใช้เนื่องจากรหัสผู้ใช้ถูกส่งไม่ถูกต้อง (ขอบคุณ เดวิด เซอร์บันเตส กาบาเยโร)
  • การแก้ไขข้อบกพร่อง: แก้ไขการพิมพ์ผิดในหน้าระดับการแก้ไข (ขอบคุณ เธียนส์ โคเอตซี)
  • การแก้ไขข้อบกพร่อง: การซื้อล่าสุดจากวันที่อัปเดตจะไม่แสดงในบางกรณี
  • การแก้ไขข้อบกพร่อง: การควบคุมใหม่หลังจากยกเลิกการสมัครสมาชิก Stripe บนเกตเวย์จนกว่าคุณจะได้รับแจ้งว่าจะถูกบล็อก
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: ผลการค้นหาใหม่ใน pmpro_getMembershipLevelsForUser() สิ่งนี้ทำให้มั่นใจได้ถึงประสิทธิภาพ โดยเฉพาะอย่างยิ่งหากมีข้อมูลจำนวนมากในหนึ่งหน้าก่อนที่จะตรวจสอบการเป็นสมาชิก (ขอบคุณ ซีจิน เดวิส)
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: ตอนนี้ส่ง display_name ไปยัง $data array ที่ส่งผ่านไปยังตัวกรองอีเมล PMPro (ขอบคุณ เดวิด เซอร์บันเตส กาบาเยโร)
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: การค้นหาใหม่สำหรับการแจ้งเตือนที่เหลืออยู่เกี่ยวกับสถานะ "สำเร็จ" หรือ "รอดำเนินการ" บนหน้าการเรียกเก็บเงิน
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: เพิ่ม hooks การดำเนินการ pmpro_checkout_preheader_before_get_level_at_checkout และ pmpro_checkout_preheader_after_get_level_at_checkout Vikorist pmpro_checkout_preheader_before_get_level_at_checkout เพื่อรันเซสชันเร็วขึ้นตอนนี้
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: เปลี่ยนเป็น "membership_code_id" และ "membership_code" เป็นช่องตัวเลือกสำหรับรหัสย่อของสมาชิก พวกเขาจะใช้งานได้และจะไม่แลกเปลี่ยนสิ่งที่จำเป็นเพื่อเลือกรหัสส่วนลดสำหรับลูกค้าของคุณ เพิ่ม "membership_description" และ "membership_confirmation" แทน
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: การกรองข้อความรีเซ็ตรหัสผ่านเพื่อให้แน่ใจว่าลิงก์ยังคงใช้งานได้ในทุกกรณีเมื่อเราแปลงอีเมลเป็น HTML
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: เพิ่ม reCAPTCHA v3 และการสนับสนุน reCAPTCHA ที่มองไม่เห็น นี่เป็นคุณสมบัติที่ยอดเยี่ยมเช่นการอัปเดต Stripe หรือ Braintree เป็นตัวเลือก reCAPTCHA v3 อ่านเพิ่มเติมที่นี่: https://www.paidmembershipspro.com/pmpro-update-2-0-5/
  • REFACTOR: Nini keruvannya pmpro_billing_preheader shlunok pіlya jquery.creditCardValidator script єการแนะนำใน preheader/billing.php ก่อนการแข่งขันตามที่เราจะทำใน preheader/checkout.php (ขอบคุณ เรฟ โคลตัน)

2.0.4 — 2019-01-14

  • การแก้ไขข้อบกพร่อง: แก้ไขคำเตือนในโค้ดที่เพิ่มใน 2.0.3 ซึ่งสามารถใช้เพื่อคลิกชำระเงิน
  • การแก้ไขข้อบกพร่อง: ตั้งค่าลำดับความสำคัญ pmpro_check_admin_capabilities เป็น 5 เพื่อลงทะเบียนกับผู้จัดจำหน่ายอย่างรวดเร็ว
  • การแก้ไขข้อบกพร่อง: ย้าย ID ที่ซ้ำกันไปยังบัญชีบัญชีหน้าบัญชีลิงก์การดำเนินการ "ยกเลิก"
  • การแก้ไขข้อบกพร่อง/ประสิทธิภาพ: ไม่มีการแก้ไขเล็กน้อยของ frontend.blocks.js ซึ่งไม่มีโค้ดการทำงาน แต่โหลดบน Gutenberg JS ซึ่งไม่จำเป็นในส่วนหน้า เนื่องจากบล็อกของเราใช้งานส่วนหน้า JS พวกเขาจะโหลดอีกครั้ง ไม่เช่นนั้นการอ้างอิงจะถูกต้อง
  • การแก้ไขข้อบกพร่อง/ประสิทธิภาพ: ไม่ต้องโหลดบล็อกอีกต่อไป style.css รูปแบบส่วนหน้าของ Tsi ซ้ำซ้อนกับ CSS ใน css/frontend.css
  • หมายเหตุ: Repository SVN ถูกโพสต์บนแท็ก 2.0.3 หากการอัปเดตออกไป ไคลเอนต์บางตัวอาจจำเป็นต้องอัปเดตหรือมีคลาสที่จะอัปเดต และยังไม่ได้รับไฟล์ที่ถูกต้องสำหรับ 2.0.3 ทุกคนมีหน้าที่รับผิดชอบในการอัพเดตเป็น 2.0.4 ซึ่งก็คือ Gucci

2.0.3 — 2019-01-11

  • การแก้ไขข้อบกพร่อง: จำนวนที่ลดลง ถอดรหัสในเบราว์เซอร์แบบสั้นสำหรับการเชื่อมต่อการสมัครสมาชิกเก่าก่อนหากผู้ใช้ต่ออายุด้วยเกตเวย์อื่น หมายเหตุ: การแก้ไขนี้อยู่ในเวอร์ชัน 2.0 แต่มีการใช้งานเต็มรูปแบบแล้ว
  • การแก้ไขข้อบกพร่อง: การกรองคำสั่งซื้อของการชำระเงิน pmpro_other_order_ids_to_cancel visconati จะไม่ถูกยกเลิก สิ่งนี้เริ่มเกิดขึ้นในเวอร์ชัน 2.0 ตั้งแต่เราเริ่มตั้งค่า user_id ในคำสั่งซื้อสำหรับผู้ใช้ที่มีอยู่ก่อนที่การชำระเงินจะประมวลผลโดยสมบูรณ์ การแก้ไขนี้ควบคู่ไปกับการแก้ไขข้างต้นและจะแก้ไขกรณีที่ผู้ใช้ถูกยกเลิกทันทีหลังจากชำระเงิน
  • การแก้ไขข้อบกพร่อง: คำเตือน Virishennya ในหน้าระดับการแก้ไขโดยค่าเริ่มต้น $confirmation_in_email เป็น 0

2.0.2 — 2019-01-10

  • การแก้ไขข้อบกพร่อง: แก้ไขปัญหาเมื่อใช้สกุลเงินที่ไม่ใช่สหรัฐอเมริกา หากต้องการความช่วยเหลือเพิ่มเติม จำเป็นต้องใช้ฟังก์ชัน pmpro_round_price ในหลายพื้นที่ เพิ่มสำหรับการอัปเดตครั้งล่าสุด ซึ่งจะเพิ่มจำนวนสิบในคอลัมน์แรกใน DB เป็น 8 เพื่อรองรับการแลกเปลี่ยน Bitcoin แต่ยังรวมถึงการอัปเดต DB ที่แน่นอนสำหรับเวอร์ชัน 2.1 ด้วย
  • การแก้ไขข้อบกพร่อง: แก้ไขปัญหาที่ผู้ใช้ปัจจุบันที่เช็คเอาท์อาจประสบปัญหา เพิ่มเมธอด getMembershipLevelAtCheckout ให้กับคลาส MemberOrder และใช้สิ่งนั้นระหว่างการชำระเงิน เมธอด getMembershipLevel สามารถใช้กับคุณสมบัติ user_id ของคำสั่งซื้อได้ (เพิ่มไปยังคำสั่งซื้อเมื่อชำระเงินในเวอร์ชัน 2.0) และค้นหาข้อมูลระดับจากตาราง pmpro_memberships_users แทนที่จะใช้ pmpro_level global พวกเขารับชะตากรรมของ PayPal Express (เช่นเดียวกับคนอื่น ๆ ) สามารถ vikoristovat บรรณาการสั้น ๆ หากคุณสมัครใช้งาน pmpro_isLevelRecurring/etc
  • การแก้ไขข้อบกพร่อง: แก้ไขข้อผิดพลาดที่การแจ้งเตือนให้ปิดใช้งานปลั๊กอินรายงานการเข้าสู่ระบบที่ดีขึ้นสามารถแสดงให้ผู้ใช้ทั้งหมดไม่สามารถปิดใช้งานปลั๊กอินได้
  • การแก้ไขข้อบกพร่อง: การแปลที่สกปรกในไฟล์ member_expired.html ของการแปลภาษาฝรั่งเศสมีการเปลี่ยนแปลง
  • การแก้ไขข้อบกพร่อง: เพิ่มสตริงในข้อความที่อัปเดตซึ่งถูกร้องขอให้ส่ง

2.0.1 — 2019-01-03

  • การแก้ไขข้อบกพร่อง: แก้ไขปัญหาที่สามารถอัปเดตแดชบอร์ด PMPro และหน้ารายงานได้หากปลั๊กอินอื่นบางตัวทำงานอยู่

2.0 — 2018-12-31

  • ความปลอดภัย: แก้ไขวิธีที่เราหลีกเลี่ยงสิ่งต่าง ๆ ในรายงานการเป็นสมาชิกคำสั่ง SQL
  • การแก้ไขข้อบกพร่อง: จำนวนที่ลดลง ถอดรหัสในเบราว์เซอร์แบบสั้นสำหรับการเชื่อมต่อการสมัครสมาชิกเก่าก่อนหากผู้ใช้ต่ออายุด้วยเกตเวย์อื่น
  • การแก้ไขข้อบกพร่อง: มีการตรวจสอบคำเตือนเกี่ยวกับบริการ Stripe Webhook แล้ว
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: มองเห็นภาพที่ไม่ได้ใช้จากปลั๊กอินหลัก
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: ผสมฟังก์ชัน getTimestamp ที่ไม่ได้ใช้
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: อัปเดต Braintree/PHP Library เป็น 3.36.0
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: นำหน้าชื่อแผน Braintree ด้วย pmpro_#
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: การตั้งชื่อตารางรายงานในแบบสอบถามสำหรับรายงานการเป็นสมาชิกและการขาย
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: เปลี่ยน "บัญชีดำ" เป็น "รายการบล็อก"
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: สมัครสมาชิกรหัสส่วนลดปุ่ม "ใช้" เมื่อชำระเงินเพื่อให้ดูเหมือนลิงก์ข้อความมากขึ้น
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: ค่าของคำเธรดนั้นถูกต้อง ไม่ใช่ SQL
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: อัปเดตวิธี pmpro_next_Payment ให้เสร็จสมบูรณ์ก่อนการซื้อ หากผู้ซื้อไม่ปรากฏให้เห็นเพื่อเปิดการชำระเงินปัจจุบันในชั่วโมงถัดไป หากการชำระเงินที่เหลือไม่ได้รับการยอมรับ
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: ปกป้อง ID ของลูกค้าใน MemberOrder หากไคลเอนต์ใช้งานอยู่และมีส่วนร่วมในเกตเวย์นอกสถานที่
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: เปลี่ยนแถบ Webhook และ PayPal IPN Handler เพื่อเปิดใช้งานหมายเลข ID สำหรับอีเมลเพิ่มเติม
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: นำคำเตือนขีดจำกัดการเรียกเก็บเงิน Stripe กลับมา นี่คือปลั๊กอินสำหรับลบขีด จำกัด ของแถบออกจากแถบ https://github.com/strangerstudios/pmpro-stripe-billing-limits/blob/master/pmpro-stripe-billing-limits.php
  • คุณสมบัติ: บล็อกตัวแก้ไข Gutenberg / v5.0 สำหรับหน้าสมาชิกแบบชำระเงิน Pro ปุ่มชำระเงินและฟังก์ชัน "รหัสย่อ" ของสมาชิก
  • คุณสมบัติ: มีการเพิ่มหน้า "แดชบอร์ด" ใหม่ และติดตั้งการตั้งค่าโครงสร้างสำหรับ "การเป็นสมาชิก" แล้ว
  • คุณลักษณะ: สร้างฟังก์ชันการตรวจสอบใหม่และรวมคุณลักษณะเพิ่มเติมสำหรับ Beaver Builder, Elementor และ SiteOrigin Page Builder
  • คุณสมบัติ: การเพิ่มเส้นทาง REST API สำหรับการเข้าถึงการเป็นสมาชิกโพสต์และระดับความเป็นสมาชิกของผู้ใช้
  • คุณสมบัติ: ตัวเลือกเพิ่มเติมรวมถึงข้อความยืนยันที่เท่ากันในอีเมลยืนยัน
  • คุณสมบัติ: เพิ่มไฟล์สำหรับรหัสดิสก์เพิ่มเติมในรายงานการเป็นสมาชิกและการขาย
  • คุณสมบัติ: เพิ่มตัวกรองตามรหัสส่วนลดในรายการหน้าผู้ดูแลระบบ
  • คุณสมบัติ: เพิ่มในตัวเลือก "คัดลอก" สำหรับรหัสส่วนลด
  • คุณสมบัติ: คลิกที่สิ่งเหล่านั้นเพื่อแก้ไขหรือเพิ่มรหัสส่วนลดในการแก้ไขคำสั่งซื้อเดียว
  • คุณสมบัติ: เพิ่มความสามารถในการส่งออกคำสั่งซื้อด้วยรหัสส่วนลดที่ใช้
  • คุณสมบัติ: เพิ่มไฟล์ใหม่สำหรับฟังก์ชั่นหรือสตั๊ดที่ปลดล็อค
  • การเพิ่มประสิทธิภาพ: ย้ายหน้า “การเป็นสมาชิก” ขึ้นในแถบด้านข้างด้านล่างความคิดเห็น
  • การเพิ่มประสิทธิภาพ: แทนที่รายงานการเข้าชม การดู การเข้าสู่ระบบด้วยฟังก์ชันเสริม "รายงานการเข้าสู่ระบบที่ดีขึ้น"
  • การเพิ่มประสิทธิภาพ: หมายเหตุเกี่ยวกับผู้ที่คุณใช้ไลบรารี Google Charts สำหรับไลบรารีแผนภูมิที่อัปเดต (corechart.js)
  • การปรับปรุง: หน้าผู้ดูแลระบบรายงานกำลังโหลดรายงานเพื่อรับความช่วยเหลือเพิ่มเติมฟังก์ชัน add_meta_box WordPress
  • การเพิ่มประสิทธิภาพ: เพิ่มความสามารถในการกรองรายงานสมาชิกสำหรับระดับฟรีหรือจ่ายเงินเท่านั้น
  • การเพิ่มประสิทธิภาพ: ปรับอัตราการไหลเมื่อชำระเงิน เพื่อไม่ให้ด้านข้างติดกับระดับด้านข้าง
  • การเพิ่มประสิทธิภาพ: การแสดงโค้ดที่โพสต์ในทุกหน้าและหนึ่งแถวของหน้าแก้ไข
  • การเพิ่มประสิทธิภาพ: เพิ่มความสามารถในการกรองคำสั่งซื้อแบบฟรี (คำสั่งซื้อเท่ากับ $0), ชำระเงิน (คำสั่งซื้อที่มากกว่า $0)
  • การเพิ่มประสิทธิภาพ: การแสดงสถานะคำสั่งซื้อของใบแจ้งหนี้ใหม่บนหน้าบัญชีสมาชิกสำหรับคำสั่งซื้อ (ชำระเงินแล้ว รอดำเนินการ หรือคืนเงินแล้ว)
  • การเพิ่มประสิทธิภาพ: ลิงก์การค้นหาเพิ่มเติมอย่างรวดเร็วเพิ่มเติมเมื่อไม่พบสมาชิกในการค้นหารายชื่อสมาชิก
  • การปรับปรุง: เพิ่มการตรวจสอบในหน้าส่วนเสริมเพื่อซ่อนส่วนเสริมที่ไม่ได้รับการสนับสนุนหรือแนะนำอีกต่อไป
  • การเพิ่มประสิทธิภาพ: ปรับปรุงรูปแบบการตอบสนองของพื้นที่ผู้ดูแลระบบสมาชิกสำหรับอุปกรณ์ขนาดเล็ก
  • การเพิ่มประสิทธิภาพ: การเพิ่ม .gitattributes และ gitignore สุภาพตอนนี้สำหรับโหนดโดยเฉพาะ

1.9.5.6 — 2018-11-15

  • การแก้ไขข้อบกพร่อง: เปลี่ยนวิธีการ ซึ่งจะใช้เรื่องไร้สาระ เปิดลายเซ็นสองครั้ง และจะเปิดบนฝั่งเบิร์ช
  • การแก้ไขข้อบกพร่อง: แก้ไขข้อผิดพลาดใน Braintree webhook ด้วย PHP เวอร์ชันที่เสียหาย
  • การแก้ไขข้อบกพร่อง: แผน Braintree ที่ถูกต้องถูกทำเครื่องหมายว่าผิดพลาด
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: เพิ่มรหัสคำสั่งซื้อลงใน CSV ส่งออกคำสั่งซื้อ
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: หมุนตัวเลือกอื่นๆ RE ขีดจำกัดการเรียกเก็บเงินด้วยเกตเวย์ Stripe (ขอบคุณ จอร์แดน โคห์ล)
  • การเพิ่มประสิทธิภาพ: เพิ่มตัวกรอง pmpro_include_pricing_fields
  • การเพิ่มประสิทธิภาพ: การเสริมความแข็งแกร่งให้กับตัวระบุก่อนโปรโมชัน การเชื่อมโยงบัญชีของคุณด้วยรหัสย่อด้วย koristuvach สามารถทำได้อย่างรวดเร็วด้วย CSS/JS
  • การเพิ่มประสิทธิภาพ: อัปเดตการแปลภาษาฝรั่งเศส (ขอบคุณปาสคาล)
  • การเพิ่มประสิทธิภาพ: โลโก้ Retina บนหน้าแดชบอร์ด
  • การเพิ่มประสิทธิภาพ: แสดงรายการ PMPro เคียงข้างกันในตารางรายการโพสต์ของแดชบอร์ด WP

1.9.5.5 — 2018-10-19

  • การแก้ไขข้อบกพร่อง: เปลี่ยนข้อความแสดงข้อผิดพลาดใน Braintree webhook ซึ่งจะทำให้เกิดปัญหาการซิงค์สำหรับผู้ใช้ Braintree
  • การแก้ไขข้อบกพร่อง: ตรวจสอบการแจ้งเตือนอีกครั้งเกี่ยวกับการเชื่อมต่อบัญชีส่วนตัวบน PayPal API เนื่องจากกระบวนการประมวลผลการแจ้งเตือน IPN สำหรับการสมัครสมาชิกนั้นเอง
  • การแก้ไขข้อบกพร่อง: นอกจากนี้ เวอร์ชัน Stripe API ได้รับการติดตั้งสำหรับเกตเวย์ที่ไม่ใช่ Stripe ในหน้าการตั้งค่าการชำระเงิน
  • การแก้ไขข้อบกพร่อง: Vikorist self:: ข้อมูล static:: ในคลาส Stripe ซึ่งขจัดปัญหา pmpro_stripe_customerid จากการอัปเดต
  • การแก้ไขข้อบกพร่อง: แก้ไขข้อผิดพลาดร้ายแรงใน PHP 5.2 (เรายังคงแนะนำ PHP ขั้นต่ำ 5.6)
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: เลื่อนไปที่องค์ประกอบชั่วโมงที่ต้องการเมื่อคุณกรอกรายการสมาชิกที่ใช้งานอยู่ทั้งหมดเสร็จแล้ว
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: ทำความสะอาดโค้ด CSS รอบๆ ปุ่มต่างๆ
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: เพิ่มแบบฟอร์มสำหรับ Krone เดนมาร์ก
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: ลบคำเตือนข้อจำกัดการเรียกเก็บเงิน RE ด้วยเกตเวย์ Stripe แถบการใช้งานของเรารองรับขีดจำกัดการเรียกเก็บเงินมาระยะหนึ่งแล้ว
  • การเพิ่มประสิทธิภาพ: เพิ่มสกุลเงินชิลลิงเคนยาเป็นสกุลเงิน (แทงค์, อูรานดู บิลดัด นามาวา)
  • การเพิ่มประสิทธิภาพ: อัปเดตคำอธิบาย URL อีเมล และข้อมูลลิขสิทธิ์ในส่วนหัวของปลั๊กอิน
  • การเพิ่มประสิทธิภาพ: ด้านล่างนี้คือหมายเหตุในหน้าต่างๆ ของหน้าในตาราง เนื่องจากหน้าดังกล่าวอยู่ในหน้า PMPro
  • การเพิ่มประสิทธิภาพ: การปรับปรุงโลโก้และลายน้ำในรอบสำหรับจอเรตินา

1.9.5.4 — 2018-09-10

  • ความปลอดภัย: ค่าทั้งหมดจะถูกป้อนลงใน SQL Queries ในโค้ดการรายงานของเรา และจะถูกฆ่าเชื้อ หากไม่ได้ Escape ผ่านทาง esc_sql() ตัวแปรทั้งหมดที่ป้อนก่อน SQL Queries ในรายงานจะแสดงอยู่ใน esc_sql() โค้ดก่อนหน้านี้ไม่มีช่องโหว่จนกว่าจะมีการแก้ไขใดๆ ที่มองเห็นได้ แต่จะทำให้โค้ดแข็งแกร่งขึ้นจากช่องโหว่ในกรณีที่ส่วนอื่นๆ ของโค้ดมีการเปลี่ยนแปลงในอนาคต
  • การแก้ไขข้อบกพร่อง: ขนาดที่ลดลงพร้อมการแจ้งเตือนสั้นๆ เมื่อ The My Login 7 เปิดใช้งานอยู่ (ขอบคุณเจฟฟ์ Farthing)
  • การแก้ไขข้อบกพร่อง: ไม่มีคำเตือนเกี่ยวกับ "ระวังอย่าเปิดใช้งานข้อความ" เมื่ออีเมลเชื่อมต่อกับ Stripe เมื่อคลิก
  • การแก้ไขข้อบกพร่อง: แก้ไขปัญหาที่คำสั่งซื้อ TwoCheckout อัปเดตข้อมูลความยินยอม TOS อย่างไม่ถูกต้อง (ขอบคุณ ชาร์ล พี. โบทา)
  • การแก้ไขข้อบกพร่อง: แก้ไขปัญหาที่ฟังก์ชันความเป็นส่วนตัวไม่ได้ตั้งค่าเริ่มต้นเป็น $current_user อย่างถูกต้อง ในทางปฏิบัติ เรามักจะส่งผ่าน user_id อยู่แล้ว
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: เปลี่ยนการแจ้งเตือนสำหรับ wpautop wiki แทน Apply_filters('the_content') หากคุณเขียนลงใน Shorts หรือคอนเทนเนอร์อื่นๆ ที่คุณสามารถแยกออกจากไฟล์ได้ คุณจะต้อง add_filter('pmpro_level_description', 'the_content') เพื่อเปลี่ยนกลับสิ่งนี้สำหรับไซต์ของคุณ
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: สำหรับความช่วยเหลือเพิ่มเติมเกี่ยวกับพารามิเตอร์ที่เข้มงวดของ sanitize_user เมื่อรับชื่อผู้ใช้ เพลงนี้มีความสำคัญอย่างยิ่งสำหรับวิกิในชื่อผู้ใช้เมื่อชำระเงิน สิ่งนี้อยู่ในแนวเดียวกันกับ WP core และปลั๊กอินอื่น ๆ (ขอบคุณ เดวิด เซอร์บันเตส กาบาเยโร)
  • การเพิ่มประสิทธิภาพ: เพิ่มรายละเอียดของคำสั่งซื้อ ณ จุดราคาทั้งหมดไปยังวิดเจ็ตรายงานการขาย
  • การเพิ่มประสิทธิภาพ: แสดงเวอร์ชันทางลัดสำหรับ vikoristan ในหน้าการตั้งค่าการชำระเงิน
  • การเพิ่มประสิทธิภาพ: อัปเดตวันที่ลิขสิทธิ์และลิงก์ GPLv2 ใน License.txt

1.9.5.3 — 2018-06-26

  • การแก้ไขข้อบกพร่อง: จำเป็นต้องใช้ฟังก์ชัน pmpro_ipnhandler_extend_memberships เพื่อเปลี่ยน $user_id ซึ่งเหมือนกับ $current_user

1.9.5.2 — 2018-06-26

  • การแก้ไขข้อบกพร่อง: แก้ไขความเข้ากันได้กับ Theme My Login เวอร์ชัน 7 (ขอบคุณ Jeff Farthing)
  • การแก้ไขข้อบกพร่อง: แก้ไขข้อผิดพลาด $current_user ที่หายไปในฟังก์ชัน pmpro_ipnhandler_level_extend_memberships (ขอบคุณแอนน์)

1.9.5.1 — 2018-06-08

  • การแก้ไขข้อบกพร่อง: ลดความช่วยเหลือจาก PayPal IPN Handler ทำให้มีผู้เล่นที่เลือกระดับใหม่ หากบางคนสูญเสียสมาชิกและมีลายเซ็นการป้องกันใหม่
  • การแก้ไขข้อบกพร่อง: แก้ไข PayPal IPN Handler สำหรับการตั้งค่าระดับรายการสำหรับ 'การเปลี่ยนแปลง' (ลงท้ายด้วย 'ไม่ใช้งาน') เมื่อดำเนินการชำระเงิน คุณจะมองหาข้อมูล
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: การควบคุมใหม่ message_video_lights จะถูกพิมพ์ในตัวจัดการ IPN ของ PayPal หากการชำระเงินได้รับการประมวลผลและการแจ้งเตือนนี้ถูกต้อง เราจะไปที่ที่อยู่อีเมลที่ลงทะเบียนทันทีทางอีเมลถึงลูกค้าและผู้ดูแลระบบ (ขอบคุณ mjulian87 บน GitHub)
  • การเพิ่มประสิทธิภาพ: ลบข้อมูลการตรวจสอบความถูกต้องในบันทึก IPN
  • การเพิ่มประสิทธิภาพ: อัปเดตไฟล์ภาษาเยอรมัน (de_DE)

1.9.5 — 2018-05-24

  • การแก้ไขข้อบกพร่อง: เพิ่ม 'ข้อผิดพลาด' ในรายการบทความที่เกี่ยวข้อง
  • การแก้ไขข้อบกพร่อง: แก้ไขปัญหาที่ข้อความ PayPal recorreng_Payment ที่มีสถานะ "รอดำเนินการ" ถูกตั้งค่าเป็น "ล้มเหลว" ด้วยตัวจัดการ IPN ของเรา (ขอบคุณแมตต์จูเลียน)
  • การแก้ไขข้อบกพร่อง: ภาษาที่แน่นอนสำหรับหน้าของหน้าเว็บที่จำเป็นในการตรวจสอบรายการหน้าสำหรับรหัสย่อ
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: นอกจากนี้ ฟังก์ชัน pmpro_getOrderStatuses() ใน adminpages/orders.php ได้รับการติดตั้งในโค้ดที่ซ้ำซ้อนที่นั่น
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: แสดง $order เป็นพารามิเตอร์อื่นเพื่อ pmpro_after_checkout เมื่อกำหนดค่าด้วยตัวจัดการ PayPal IPN (คำสั่งซื้อ $ ถูกส่งไปแล้วสำหรับการชำระเงิน "ปกติ")
  • การเพิ่มประสิทธิภาพ: คุณสามารถออกจากระบบคอลัมน์ระดับสมาชิกที่เพิ่มลงในรายชื่อผู้ใช้ในแดชบอร์ดได้ (ขอบคุณแมตต์จูเลียน)
  • คุณสมบัติ: เพิ่มการรองรับคุณสมบัติความเป็นส่วนตัวที่เพิ่มใน WP 4.9.6 รายละเอียดด้านล่าง
  • คุณสมบัติ: เพิ่มข้อความแนะนำหน้าความเป็นส่วนตัว
  • คุณสมบัติ: เพิ่มช่องเมตาผู้ใช้ PMPro-video ประวัติการเป็นสมาชิก และประวัติการสั่งซื้อเพื่อส่งออกข้อมูลส่วนบุคคล คุณสามารถกรองได้ว่าฟิลด์เมตาของผู้ใช้ใดที่จะรวมอยู่ในการส่งออกโดยใช้ตัวกรอง pmpro_get_personal_user_meta_fields ใหม่
  • คุณสมบัติ: การลบฟิลด์ข้อมูลส่วนบุคคลที่เกี่ยวข้องกับ PMPro เมื่อข้อมูลส่วนบุคคลถูกลบ จำนวนเฉลี่ยที่จะรายงานคือจำนวนฟิลด์เมตาของผู้ใช้ (กรองได้ผ่านตัวกรอง pmpro_get_personal_user_meta_fields_to_erase ใหม่) ประวัติการเป็นสมาชิกและประวัติการสั่งซื้อของผู้ใช้จะยังคงอยู่ เว้นแต่ผู้ใช้จะถูกลบออก
  • คุณสมบัติ: บันทึกการป้องกันใหม่เมื่อมีการตกลงหน้า TOS เมื่อชำระเงิน ID และวันที่แก้ไขของโพสต์ TOS จะถูกบันทึกพร้อมกับการประทับเวลาที่ TOS ตกลง ข้อมูลนี้จะอยู่ที่ด้านหนึ่งของหน้าในส่วนผู้ดูแลระบบ สั่งซื้อการส่งออก CSV และในหน้าแก้ไขโปรไฟล์ผู้ใช้ในส่วนผู้ดูแลระบบ โปรดทราบว่าอักขระนี้ไม่สามารถ backported ด้วยข้อมูลใดๆ สำหรับลูกค้าปัจจุบันและลูกค้าได้ เพื่อให้เราสามารถยอมรับ TOS อีกครั้งได้ และเนื่องจาก TOS อาจใช้เวลาในหนึ่งชั่วโมง

1.9.4.4 — 2018-03-14

  • การแก้ไขข้อบกพร่อง: อัปเดตตัวกรองเพื่อขยายอันดับของอันดับสำหรับการเลือกฟังก์ชัน pmpro_getSpecificMembershipLevelForUser() ใหม่สำหรับข้อบกพร่องใด ๆ เมื่อเปิดใช้งาน MMPU
  • การแก้ไขข้อบกพร่อง: แก้ไขกรณีที่เทมเพลตอีเมลบางรายการส่งผลให้เนื้อหาของอีเมลถูกทำซ้ำ
  • การแก้ไขข้อบกพร่อง: การเปลี่ยนแปลงขัดแย้งกับ pmpro-email-templates หากอีเมลถูกปิดใช้งาน (ตัวกรอง pmpro_email ส่งคืนค่า false) (ขอบคุณ มาติเยอ เฮย์ส)
  • การแก้ไขข้อบกพร่อง: อัปเดตรูปปั้นใหม่ในคำสั่งซื้อการสมัครสมาชิกของคุณก่อนที่จะยกเลิกบนเกตเวย์ก่อนปัญหาใด ๆ หากคุณมีวิดีโอบนเว็บ เพื่อใช้เบราว์เซอร์หลังจากยกเลิกการสมัครสมาชิกทริกเกอร์หลังจากพยายามยกเลิก
  • การแก้ไขข้อบกพร่อง: ข้อความแสดงข้อผิดพลาด "Stripe Publishable Key ปรากฏไม่ถูกต้อง" จะไม่แสดงบ่อยครั้งหากฟิลด์คีย์ว่างเปล่า
  • การเพิ่มประสิทธิภาพ: เพิ่มฟังก์ชัน pmpro_getSpecificMembershipLevelForUser($user_id, $level_id) สำหรับการเลือกหากเปิดใช้งาน MMPU และคุณต้องการเลือกระดับสมาชิกเฉพาะที่ผู้ใช้อาจมี
  • การเพิ่มประสิทธิภาพ: เปลี่ยนตัวอักษรสำหรับ reCAPTCHA ตั้งค่าคำศัพท์ปัจจุบัน: รหัสไซต์และรหัสลับ

1.9.4.3 — 2018-01-04

  • การแก้ไขข้อบกพร่อง: เป็นสิ่งสำคัญที่ PMPro จะได้รับการยอมรับจนกว่าจะยกเลิกการสมัครสมาชิกเกตเวย์เพิ่มเติม ในบางกรณี

1.9.4.2 — 2017-12-07

  • การแก้ไขข้อบกพร่อง: หลีกเลี่ยงเวอร์ชัน API ที่เข้ารหัสสองครั้งในเกตเวย์มาตรฐานของ PayPal
  • การแก้ไขข้อบกพร่อง: อัปเดตหน้าการเรียกเก็บเงินตอนนี้จะตรวจสอบเกตเวย์ของคำสั่งซื้อล่าสุดของผู้ใช้แทนการตั้งค่าเกตเวย์เริ่มต้น ในกรณีที่มีการใช้เกตเวย์หลายตัวหรือเกตเวย์เริ่มต้นมีการเปลี่ยนแปลง
  • การแก้ไขข้อบกพร่อง: แก้ไขข้อบกพร่องที่ใช้รหัสส่วนลดอย่างถูกต้องหากมีการปรับเปลี่ยนฟิลด์ที่กำหนดเอง pmpro_default_level และ vikorista บนหน้า
  • การแก้ไขข้อบกพร่อง: โครงการอีเมล มีการส่งอีเมลเพื่อให้เป็นสมาชิกคำสั่งซื้อ PayPal Express ได้อย่างรวดเร็ว
  • การแก้ไขข้อบกพร่อง: ตอนนี้ได้ยกเลิกคำแนะนำสำหรับการตรวจสอบเกตเวย์อย่างถูกต้องแล้ว
  • การแก้ไขข้อบกพร่อง: หุ่นยนต์ผสมกับหน้าการสร้างของหน้าการตั้งค่า
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: ปุ่มที่มีลายเซ็นจะปรากฏขึ้น และกระบวนการแจ้งเตือนจะปรากฏขึ้นสำหรับข้อมูลรายละเอียดเพิ่มเติมและ RTL บนหน้า
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: การเพิ่มแผนกทั่วไปและแผนกใหม่กลับไปสู่การยืนยันและการออกใบแจ้งหนี้มุมมองเดียว
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: หลีกเลี่ยงการเข้ารหัสหมายเลขเวอร์ชัน PayPal API สองครั้ง
  • การเพิ่มประสิทธิภาพ: แสดงปุ่มแจ้งเตือนและดำเนินการแจ้งเตือนสำหรับ RTL จำนวนมากขึ้นในหน้าชำระเงิน
  • การเพิ่มประสิทธิภาพ: ลำดับของช่องเผยแพร่และคีย์ลับและการตรวจสอบความถูกต้องที่เพิ่มเข้ามาผสมกัน
  • การเพิ่มประสิทธิภาพ: อัปเดตหัวข้อรายการสมาชิกแบบมีเงื่อนไขสำหรับสมาชิกที่หมดอายุ ยกเลิก หรือเก่า

1.9.4.1 — 2017-10-31

  • การแก้ไขข้อบกพร่อง: แก้ไขข้อบกพร่องร้ายแรงที่ช่องการชำระเงินไม่แสดงขึ้นสำหรับเกตเวย์ Braintree
  • การแก้ไขข้อบกพร่อง: แก้ไขปัญหาที่การแจ้งเตือน Webhook ของ Braintree ล้มเหลว ตอนนี้เราอนุญาตให้ห้องสมุด Braintree ทำความสะอาดข้อมูลที่เข้ามา เนื่องจากความพยายามในการฆ่าเชื้อของเราทำลายการตรวจสอบ
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: URL ของ webhook ได้รับการดูแลสำหรับ Braintree ตอนนี้ไปที่ admin-ajax.php ไปยังลิงก์โดยตรงสำหรับไฟล์ php ภายในปลั๊กอินของเรา
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: อัปเดตไลบรารี Recaptcha (ขอบคุณ คอริน ซิมป์สัน-ไบรอาร์ส)
  • การเพิ่มประสิทธิภาพ: ทำให้อีเมลแสดงข้อผิดพลาดในการยกเลิกล้มเหลวอ่านง่ายขึ้น

1.9.4 — 2017-10-26

  • การแก้ไขข้อบกพร่อง: แก้ไขปัญหาที่ PayPal ใช้งานไม่ได้ในราคา $1,000
  • การแก้ไขข้อบกพร่อง: การปรับเปลี่ยนในวันนี้ไม่เสร็จสมบูรณ์อย่างถูกต้องด้วย Stripe
  • การแก้ไขข้อบกพร่อง: จำนวนเงินลดลง หากอัปเดตการสมัครสมาชิก Stripe ด้วยหน้าแก้ไขผู้ใช้ ฉันสามารถยกเลิกการยกเลิกการสมัครสมาชิกได้เมื่อเว็บฮุคเริ่มทำงาน
  • การแก้ไขข้อบกพร่อง: แก้ไขปัญหาที่สมาชิก "admin_cancelled" คำนวณไม่ถูกต้องในรายงานสมาชิก
  • การแก้ไขข้อบกพร่อง: สับสนหากผู้เล่นไม่สามารถหันกลับมาและเปลี่ยนระดับสมาชิกภาพได้
  • การแก้ไขข้อบกพร่อง: pmpro_getMembershipLevelsForUser() สามารถส่งคืนรายการสมาชิกที่ทำซ้ำในอาร์เรย์ได้ เนื่องจากผู้ใช้มีรายการที่ใช้งานอยู่จำนวนมากในตาราง pmpro_memberships_users
  • การแก้ไขข้อบกพร่อง: อัปเดตรวมถึง/metaboxes.php โทร pmpro_getAllLevels() ยังคงไปที่ $membership_levels global ซึ่งเป็นปัญหา
  • การแก้ไขข้อบกพร่อง: มีการลบสตริงจำนวนหนึ่งซึ่งมีไว้สำหรับการส่งหรือ vikoristan ในโดเมนข้อความถัดไป
  • การแก้ไขข้อบกพร่อง: แก้ไขข้อผิดพลาดการเปลี่ยนเส้นทาง สิ่งที่ต้องตรวจสอบว่าไม่มีการปรับเปลี่ยนหน้าเดียวกัน
  • การแก้ไขข้อบกพร่อง: อัปเดต getfile.php เพื่อปรับปรุงไฟล์ชื่อที่มีอักขระ urlencoded (เช่น ช่องว่าง) (ขอบคุณ florent จากบล็อก PMPro)
  • การแก้ไขข้อบกพร่อง: แก้ไขการแจ้งเตือนเมื่อสคริปต์ vikoristan getfile.php เนื่องจากการใช้ add_filter แทน Apply_filters ในคลาส mimetype
  • การแก้ไขข้อบกพร่อง: การแสดงคอลัมน์มุมมองรายชั่วโมงทั้งหมดสำหรับรายงานการเข้าสู่ระบบ
  • การแก้ไขข้อบกพร่อง: แก้ไขข้อผิดพลาดร้ายแรงในรายงานการเข้าสู่ระบบ รหัสย่อของสมาชิก และโภชนาการอื่นๆ หากคุณใช้ PHP7.1+
  • การแก้ไขข้อบกพร่อง: แก้ไขปัญหาเกี่ยวกับการบันทึกอาร์เรย์โดยใช้ pmpro_setOption()
    ขึ้นบรรทัดข้อความ
  • การแก้ไขข้อบกพร่อง: รูปภาพประเภทในสตริง “คุณคิดอย่างไร” ลองอีกครั้ง."
  • การแก้ไขข้อบกพร่อง: ลดจำนวนสตริงที่แปลงเป็นข้อความสั้นของบ้านหรือประเภทอื่นสำหรับการส่งสัญญาณ
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: ตอนนี้รวมไฟล์ jsapi.js ของ Google สำหรับวิกิในรายงานแล้ว
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: แก้ไขปัญหาที่อีเมลบางฉบับ (เช่น
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: รายงานเพื่อควบคุมหัวข้อความเข้ากันได้ของการเข้าสู่ระบบของฉันเมื่อจัดการการเปลี่ยนเส้นทางการเข้าสู่ระบบ
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: การจัดการข้อผิดพลาดที่ดีขึ้นสำหรับ Braintree
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: วิดเจ็ตสถิติการเป็นสมาชิกจะแสดง 3 ระดับแรกตามลำดับระดับ
  • การแก้ไขข้อบกพร่อง/การปรับปรุง: เพิ่มตัวกรอง pmpro_member_shortcode_access
  • การเพิ่มประสิทธิภาพ: อัปเดตไลบรารี Stripe PHP เป็นเวอร์ชัน 5.2.2 และอัปเดตโดย Stripe สำหรับ API เวอร์ชันล่าสุด 2017-08-15
  • การเพิ่มประสิทธิภาพ: เปลี่ยนส่วนหน้า (เช่น checkout.php) สำหรับเลย์เอาต์แบบอิง div แทนที่จะเป็นตาราง ข้อมูลสำคัญเกี่ยวกับเรื่องนี้ หากคุณใช้เทมเพลตเพจพิเศษหรือข้อมูลเกี่ยวกับ UI หลังจากอัปเกรด:
  • การเพิ่มประสิทธิภาพ: เพิ่มการแบ่งหน้าก่อนที่จะโพสต์หน้าในผู้ดูแลระบบ นอกจากนี้ยังเรียงลำดับรหัสจากมากไปหาน้อยตาม ID Vikorist pmpro_discount_codes_per_page filter เพื่อเปลี่ยนขีดจำกัดหน้าเป็น 15
  • การเพิ่มประสิทธิภาพ: อัปเดตการชำระเงินส่วนหน้าของปลั๊กอิน การเรียกเก็บเงิน การยืนยัน และใบแจ้งหนี้เดี่ยวเพื่อลบเค้าโครงตามตารางส่วนใหญ่
  • การเพิ่มประสิทธิภาพ: รายงานเกี่ยวกับข้อความการชำระเงินหากพยายามชำระเงินโดยใช้ที่อยู่อีเมลของผู้ใช้ที่มีอยู่
  • การเพิ่มประสิทธิภาพ: เพิ่มตัวกรอง pmpro_report_levels ในการเปลี่ยนแปลงการเป็นสมาชิกภาคฤดูร้อนของค่าเท่ากับและประเภทของค่าเท่ากับสำหรับรายงาน Members.php
  • การเพิ่มประสิทธิภาพ: อัปเดตวิดีโอและคัดลอกสำหรับ readme.txt
  • การเพิ่มประสิทธิภาพ: เพิ่มชื่อที่แสดงของผู้ใช้ลงในคำค้นหารายชื่อสมาชิก
  • การเพิ่มประสิทธิภาพ: เพิ่มรูเบิลรัสเซียเป็นสกุลเงิน
  • การเพิ่มประสิทธิภาพ: คำว่า "CVV" ได้รับการแก้ไขเป็น "รหัสความปลอดภัย (CVC)" เมื่อแสดงที่ส่วนหน้า
  • การเพิ่มประสิทธิภาพ: เพิ่ม .doc และ .docx ให้กับคลาส mimetype
  • การเพิ่มประสิทธิภาพ: เพิ่มไฟล์ภาษาโปรตุเกส (ขอบคุณ เซคุนดิโน คอร์เรอา)
  • การเพิ่มประสิทธิภาพ: อัปเดตหน้าผู้ดูแลระบบปลั๊กอินพร้อมลิงก์ไปยังเอกสารและการสนับสนุนที่ดีขึ้น

1.9.3 — 2017-07-06

  • สรุป: ปรับปรุงความสะอาดของอินพุตและความต้องการที่เพิ่มขึ้นในหลาย ๆ ที่เพื่อป้องกันการโจมตี XSS
  • การแก้ไขข้อบกพร่อง: อีเมลที่ถูกต้องจะปรากฏขึ้นเมื่อทำงานกับส่วนเสริม PMPro Plus โดยติดตั้งใบอนุญาต Core
  • การแก้ไขข้อบกพร่อง: แก้ไขปัญหาที่ตัวระบุธุรกรรมการสมัครสมาชิกและการชำระเงินไม่ถูกต้องหากคัดลอกไปยังคำสั่งซื้อในรอบ (ขอบคุณ ปิ๊ปปิน วิลเลียมสัน)
  • การแก้ไขข้อบกพร่อง: แก้ไขข้อผิดพลาดร้ายแรงที่เกิดขึ้นใน PHP บางเวอร์ชัน
  • การแก้ไขข้อบกพร่อง: แก้ไขปัญหาที่ค่า ProfileStartDate ไม่ถูกต้องในเกตเวย์ Test, Viconti และ Cybersource (ขอบคุณ David Parker)
  • การเพิ่มประสิทธิภาพ: เพิ่มฟังก์ชัน pmpro_sanitize_with_safelist() ที่ใช้สำหรับอินพุตด้านสุขอนามัยที่อาจรวมตัวเลขที่มีตัวเลือกที่แน่นอน
  • การเพิ่มประสิทธิภาพ: อัปเดตฟังก์ชัน pmpro_setOption() และ pmpro_getParam() เป็นบรรทัดใหม่ $sanitize_function ตามที่ระบุโดย 'sanitize_text_field'

1.9.2.2 — 2017-06-13

  • การแก้ไขข้อบกพร่อง: แก้ไขคำเตือนบนหน้าเว็บไซต์ของ Network Dashboard
  • การแก้ไขข้อบกพร่อง: การตรวจสอบสคริปต์อัปเดตที่ใช้โดยไลบรารี Stripe เนื่องจากระบบไม่รองรับความสามารถขั้นต่ำของ Stripe API วิธีนี้จะหลีกเลี่ยงคำเตือนและข้อผิดพลาดเมื่ออัปเกรด

1.9.2.1 — 2017-06-05

  • แก้ไขข้อผิดพลาด: ผสมผสานกับฟังก์ชันต่างๆ ได้ในที่เดียว
  • การแก้ไขข้อบกพร่อง: การเริ่มเซสชัน PHP เร็วขึ้นเพื่อแก้ไขปัญหาเกี่ยวกับ PayPal/PayPal Express Checkouts

1.9.2 — 2017-06-03

  • การแก้ไขข้อบกพร่อง: แก้ไขปัญหาที่การชำระเงินของ Braintree ล้มเหลวโดยมีข้อผิดพลาด CVV เมื่อผู้ใช้ปัจจุบันเช็คเอาท์
  • การแก้ไขข้อบกพร่อง: การโหลดไลบรารี Stripe มีการเปลี่ยนแปลงใน PHP 5.6
  • การแก้ไขข้อบกพร่อง: ข้อความส่งออก CSV รายชื่อสมาชิกโดยไม่สนใจพารามิเตอร์การค้นหา
  • การแก้ไขข้อบกพร่อง: จำรหัสส่วนลดไม่ได้ และฉันจะ "ดูอีกครั้ง" ขั้นตอนการชำระเงินด้วย PayPal Express (ขอบคุณ เรฟ โคลตัน)
  • การปรับปรุง/แก้ไข: ตัวกรองการค้นหาอาจไม่ถูกต้องสำหรับผู้ซื้อขายสำหรับคำขอ REST API โดย slug
  • การปรับปรุง/แก้ไข: ไม่ได้ระบุการ์ด MasterCard อย่างถูกต้องเสมอไป จนกว่าจะตั้งค่า CardType ด้วยเกตเวย์บางตัว
  • การปรับปรุง/แก้ไข: รหัสที่กำหนดเองหรือส่วนเสริมหนึ่งรายการ (เช่น ส่วนเสริมตามสัดส่วนและช่องทำเครื่องหมายต่ออายุอัตโนมัติ) จะใช้งานไม่ได้กับการสมัครรับข้อมูล PayPal Website Payments Pro และ PayPal Express สำหรับโปรแกรม "วันที่เริ่มต้น" เพิ่มเติม ขณะนี้เราจำกัดวันที่เริ่มต้นของโปรไฟล์ไว้ที่ 1 ปี และพยายามบีบเพิ่มอีก 1 ปีในการทดลองใช้หากยังไม่มีการใช้งาน โปรดทราบว่า PayPal Standard ไม่รวมอยู่ในเนื้อหานี้
  • การเพิ่มประสิทธิภาพ: ทดสอบได้ถึง WordPress 4.8
  • การเพิ่มประสิทธิภาพ: ทำให้ประเทศต่างๆ สามารถแปลได้
  • การเพิ่มประสิทธิภาพ: ปรับปรุงประสิทธิภาพผ่านการปรับปรุงการจัดการ PHP $_SESSION ตอนนี้เราจะเปิดเซสชันก่อนที่เราจะตั้งค่าเซสชันเซสชันและปิดเซสชันเมื่อเราดำเนินการเสร็จแล้วเท่านั้น
  • การเพิ่มประสิทธิภาพ: เพิ่มรหัสเพื่อหยุดการเปิดใช้งานเครือข่ายของ Paid Memberships Pro (ขอบคุณ พอล บาร์ธไมเออร์)

1.9.1 — 2017-05-11

  • การแก้ไขข้อบกพร่อง: หมายเหตุถึงการตรวจสอบโค้ดว่าไลบรารี Stripe ได้รับการโหลดแล้วหรือไม่ ปัญหาความเข้ากันได้กับปลั๊กอินอื่น ๆ ที่รวมไลบรารี Stripe API ไว้ด้วย
  • การแก้ไขข้อบกพร่อง: การเปลี่ยนแปลงโค้ดซึ่งคล้ายกับ preg_replace หากทำงานในระดับการรับรองความถูกต้อง
  • การแก้ไข/การปรับปรุง: เปลี่ยนรหัสทดสอบ/เอกสารจากห้องสมุด Stripe และ Braintree
  • การเพิ่มประสิทธิภาพ: ใบอนุญาตหยุดชั่วคราวใหม่สำหรับศตวรรษแรกของ vikoristannya และได้รับข้อผิดพลาด "ไม่ถูกต้อง" เนื่องจากไม่มีการใช้คีย์

1.9 — 2017-04-26

  • ข้อผิดพลาด: ลดการสนับสนุนสำหรับการสมัครรับข้อมูลซ้ำของ 2Checkout ตอนนี้ vikoristovuyuchi Payment_transaction_id สำหรับการค้นหา/การกู้คืนการขาย การสมัครรับข้อมูลซ้ำเนื่องจากไม่มีการบันทึกการสมัครสมาชิก_transaction_id
  • ข้อผิดพลาด: คะแนนลดลงหากไม่ได้ป้อนระดับสมาชิกเก่าทางอีเมล (ขอบคุณไมค์จาก Migrating Eye)
  • ข้อบกพร่อง: แก้ไขปัญหาที่ "การทดลองใช้แบบกำหนดเอง" ไม่ได้ถูกบันทึกสำหรับรหัสส่วนลด
  • ข้อผิดพลาด: แก้ไขปัญหาที่การชำระเงินจะดำเนินการต่อไป โดยจะไม่มีการชดเชยสำหรับรหัสส่วนลด
  • ข้อผิดพลาด: vimikach ที่ลดลงใน yakoma nalagodzhennya ที่เพิ่มผ่าน pmpro_custom_advanced_settings ลูกเปตองจะไม่ถูกปรับเป็น DB เว้นแต่ลูกเปตองจะขึ้นต้นด้วย custom_
  • BUG: เปลี่ยนการตั้งค่าอื่นๆ เป็น pmpro_custom_advanced_settings
  • จุดบกพร่อง: สับสน เช่นเดียวกับในวิธี InvoiceEmail ใหม่ของจดหมายอิเล็กทรอนิกส์ที่คาดหวัง $order->discount_code สำหรับสตริง แต่ยังอยู่ในวิธี InvoiceEmail ใหม่ เป็นออบเจ็กต์รหัสส่วนลด (ขอบคุณ บิล สโตลต์ซ)
  • คุณสมบัติ: เพิ่มรหัสย่อ pmpro_member คลิกที่เว็บไซต์ Paid Memberships Pro เพื่อดูเอกสาร
  • การเพิ่มประสิทธิภาพ: เพิ่มตัวกรอง pmpro_account_membership_expiration_text เพื่อกรองข้อความการหมดอายุที่แสดงบนหน้าบัญชีสมาชิกของผู้ใช้
  • การเพิ่มประสิทธิภาพ: อัปเดตไลบรารี Stripe และ Braintree ของเราเพื่ออัปเดตเวอร์ชันที่เหลืออยู่ การอัปเดตนี้ช่วยให้สามารถรวมเกตเวย์ของเราเพื่อรองรับ PHP7 และยังลบการสนับสนุนสำหรับ PHP 5.2 และ 5.3
  • การเพิ่มประสิทธิภาพ: การตรวจสอบความเข้ากันได้ระดับ Braintree ในตอนนี้จะค้นหาแผนที่มีชื่ออย่างถูกต้องด้วย
  • การเพิ่มประสิทธิภาพ: การจัดการส่วนเสริมเมื่อพยายามอัปเดตปลั๊กอินและอัปเดตเป็นเซิร์ฟเวอร์ใบอนุญาต PMPro
  • การเพิ่มประสิทธิภาพ: ปรับปรุงการแปลภาษาอิตาลี (ขอบคุณ ฟรานเชสโก เปซโซตติ)
  • การเพิ่มประสิทธิภาพ: ปรับปรุงการแปลภาษาเยอรมัน (ขอบคุณไซมอน)
  • การเพิ่มประสิทธิภาพ: เพิ่มการแปลที่ไพเราะ (ขอบคุณ มาเธียส เพอร์สัน)
  • การเพิ่มประสิทธิภาพ: เพิ่มในการแปล "จีน/กวางตุ้ง (เขตปกครองพิเศษฮ่องกงของจีน)" (ขอบคุณไก่ชาน)

1.8.13.6

  • ข้อบกพร่อง: แก้ไขข้อบกพร่องที่อีเมลหมดอายุของบัตรเครดิตมีให้สำหรับลูกค้าที่สั่งซื้อ PayPal Express
  • BUG: แก้ไขข้อผิดพลาดเมื่ออัปเดตการเรียกเก็บเงินด้วย Stripe
  • BUG: พารามิเตอร์ที่ลดลงซึ่งจะไม่ติดตั้งไฟล์เก็บถาวร / ตัวกรองเสียงสำหรับผู้ใช้ที่ลงทะเบียน
  • การเพิ่มประสิทธิภาพ: อัปเดตการแปลภาษาฟินแลนด์ (ขอบคุณ เจพี จาโคเนน)
  • การเพิ่มประสิทธิภาพ: เพิ่มตัวกรองเพื่อเปลี่ยนคำอธิบายของคุณใน Stripe (ขอบคุณ เรฟ โคลตัน)

1.8.13.5

  • ข้อผิดพลาด: แก้ไขการแจ้งเตือน php เพื่อให้ทำงานได้อย่างมีประสิทธิภาพตรวจสอบเพียงวันละครั้ง อัปเดต URL ที่ตรวจสอบไปที่แจ้งเตือน.paidmembershipspro.comด้วยเนื่องจากทำงานบนเซิร์ฟเวอร์ของตัวเอง

1.8.13.4

  • ข้อบกพร่อง/การปรับปรุง: เปลี่ยนรหัสย่อ pmpro_button เป็น pmpro_checkout_button (pmpro_button แบบเก่าจะยังคงใช้งานได้ checkout_button ใช้งานได้หากคุณติดตั้ง Register Helper ไว้)

1.8.13.3

  • BUG: แก้ไขข้อผิดพลาดเมื่อใช้เกตเวย์รอง (เช่น PayPal Express) โดยมี Stripe เป็นเกตเวย์หลักของคุณ

1.8.13.2

  • BUG: แก้ไขข้อบกพร่องด้วยการอัปเดตบัตรเครดิตผ่าน Braintree
  • BUG: แก้ไขข้อบกพร่องด้วยการอัปเดตบัตรเครดิตผ่าน Stripe
  • BUG: แก้ไขคำเตือน SQL เมื่อสร้างตาราง pmpro_membership_levelmeta (ขอบคุณ itibet บน GitHub)
  • ข้อบกพร่อง/การปรับปรุง: อาจอัปเดตรหัสที่เกี่ยวข้องกับการเรียกเก็บเงินและการชำระเงินของส่วนหัวและเทมเพลตหน้าในคลาส Braintree และ Stripe
  • การเพิ่มประสิทธิภาพ: เพิ่มตัวกรอง pmpro_billing_order ซึ่งทำหน้าที่คล้ายกับ pmpro_checkout_order
  • การเพิ่มประสิทธิภาพ: เพิ่ม hook pmpro_billing_before_submit_button ด้วยฟังก์ชันที่คล้ายกับ pmpro_checkout_before_submit_button hook
  • การเพิ่มประสิทธิภาพ: การคลิกวิดเจ็ตรายงานจะไม่ไปที่หน้ารายละเอียดอีกต่อไป คุณสามารถคลิกปุ่มรายละเอียด สิ่งนี้ทำให้คุณสามารถเพิ่มฟังก์ชันเพิ่มเติมให้กับวิดเจ็ตได้
  • การเพิ่มประสิทธิภาพ: วิดเจ็ตรายงานที่อัปเดตพร้อมปุ่ม "รายงาน" จะแสดงเฉพาะและมีการกำหนดฟังก์ชันเพจสำหรับรายงานนั้น คุณสามารถดูได้ว่ามีอะไรใหม่ในหน้าอื่นๆ
  • การเพิ่มประสิทธิภาพ: คุณสามารถคลิกส่วนหัวในวิดเจ็ตรายงานสถิติสมาชิกได้ทันทีเพื่อให้ข้อมูลสำหรับ 3 ระดับของคุณ 3 ระดับแรกของระดับการสั่งซื้อจะแสดงขึ้น

1.8.13.1

  • ข้อผิดพลาด: จำนวนเงินจะลดลงหากเมื่อสิ้นสุดชั่วโมง คุณมีการเชื่อมต่อ/ต้องการโดยไม่มีการติดตามจากหน้าแก้ไขผู้ใช้/โปรไฟล์ในแดชบอร์ด
  • BUG: แก้ไขคำเตือนในไลบรารี Braintree PHP (ขอบคุณ ทราวิส ชิเวอร์ส)
  • ข้อบกพร่อง: แก้ไขปัญหาที่วัตถุ $mypost ที่กรองแล้วไม่ปรากฏในตัวกรองหากประเภทโพสต์คือ "หน้า" (ขอบคุณเจมส์)
  • BUG: ลบแอตทริบิวต์พิเศษ class="input" ในฟิลด์ CVV เมื่อใช้เกตเวย์ Stripe (ขอบคุณ เรฟ โคลตัน)
  • จุดบกพร่อง/การปรับปรุง: เปลี่ยนตัวยึดตำแหน่งหมายเลข X สำหรับบัตรเครดิตที่ถูกปกปิดสูงสุด 12 (+ 4 รายการสุดท้ายที่เก็บไว้) แทนที่จะเป็น 13 (ขอบคุณ Rafe Colton)

1.8.13

  • คุณสมบัติ: Stripe Webhook อาจได้รับการอัปเดตเพื่อดำเนินการสมัครสมาชิกที่ถูกยกเลิกจาก Stripe PMPro จะปล่อยการเป็นสมาชิกสำหรับสมาชิกเหล่านี้ทันทีพร้อมข้อมูลเพิ่มเติมทางอีเมลถึงผู้ดูแลระบบ
  • ข้อบกพร่อง: มีข้อบกพร่องหลายอย่างในตัวจัดการ PayPal IPN
  • BUG: แก้ไขการค้นหาในหน้ารหัสส่วนลดในแดชบอร์ด (ขอบคุณเทพจิต สหะ)
  • BUG: แก้ไขข้อผิดพลาดในรายงานการยกเลิกที่ลูกเปตองการยกเลิกตลอดเวลาจะเป็น 0 เสมอ
  • ข้อผิดพลาด: เปลี่ยนการแจ้งเตือนเกี่ยวกับการชำระเงินเมื่อแจ้งการชำระเงิน (ขอบคุณโคเฮนจาคอบส์)
  • BUG: เวทย์มนตร์เขตเวลาในการแก้ไขหน้าผู้ใช้ในตารางเพื่อแสดงวันหมดอายุที่คุณเลือกคือชุดเดียว
  • BUG: สลับการใช้ eregi_replace และ split ที่เลิกใช้แล้ว
  • จุดบกพร่อง/การปรับปรุง: ฟังก์ชัน Vikor add_query_arg ใน pmpro_url() (ขอบคุณเทพจิต สหะ)
  • การเพิ่มประสิทธิภาพ: อัปเดตสไตล์ชีทสำหรับ WordPress 4.7 และการสนับสนุนธีม Twenty Seventeen ใหม่
  • การเพิ่มประสิทธิภาพ: ความแปรผันของหมายเลขรอบที่มีตัวเลข > 1 มีความรุนแรงต่ำ เนื่องจากเกตเวย์ Payflow Pro เนื่องจากตอนนี้ Payflow รองรับหมายเลขรอบ (ความถี่) > 1
  • การเพิ่มประสิทธิภาพ: อัปเดตการแปล da_DK (ขอบคุณ bopdoq บน GitHub)
  • การเพิ่มประสิทธิภาพ: เพิ่มตัวกรอง pmpro_include_Payment_option_for_paypal ซึ่งสามารถตั้งค่าเป็นเท็จสำหรับ PayPal WPP โดยไม่มีตัวเลือก PayPal Express
  • การเพิ่มประสิทธิภาพ: การตรวจสอบการพึ่งพาที่ดีขึ้นสำหรับเกตเวย์ Stripe และ Braintree
  • การเพิ่มประสิทธิภาพ: อัปเดตตัวจัดการ IPN และตัวจัดการ Stripe Webhook ใช้ pmpro_cancelMembershipLevel กับ pmpro_changeMembershipLevele นี่คือการสนับสนุนสำหรับส่วนเสริม MMPU

1.8.12.1

  • BUG: แก้ไขข้อผิดพลาดเมื่อใช้เกตเวย์ทดสอบ
  • จุดบกพร่อง: Vickory ถ้า is_user_logged ไม่พร้อมใช้งานกับฟังก์ชัน pmpro_search_filter() (ขอบคุณ d_enajetic)
  • การเพิ่มประสิทธิภาพ: อัปเดตคำแปลภาษาอิตาลี (ขอบคุณอีกครั้งแองเจโล)
  • การปรับปรุง: ตอนนี้คุณสามารถกำหนด ('PMPRO_USE_SESSIONS', false); wp-config.php ของคุณสูงถึง PMPro เมื่อข้ามการโทรไปที่ session_start โปรดทราบว่า PayPal Express และส่วนเสริมจำเป็นต้องมีเซสชันจึงจะสามารถทำงานได้

1.8.12

  • ข้อบกพร่อง: แก้ไขปัญหาที่บางครั้งอีเมล "หมดอายุเร็วๆ นี้" ถูกส่งเกินความจำเป็น
  • ข้อบกพร่อง: แก้ไขปัญหาที่คำขอ IPN มาตรฐานของ PayPal เกิดจากจำนวนภาษีที่กำหนดใน PayPal
  • ข้อผิดพลาด: เราได้เพิ่มลิงก์ที่มีเส้นขีดไปยังลายเซ็น "อัปเดต" ซึ่งถูกตั้งค่าเป็น "การชำระเงินครั้งถัดไป" เช่น หากคุณใช้ Stripe กับระดับที่มีจำนวนทดลองไม่เป็นศูนย์ หากการอัปเดตดำเนินการและสร้างการสมัครสมาชิกใหม่ การสมัครสมาชิกเก่าจะไม่ถูกลบและ ID การสมัครสมาชิกใหม่จะไม่ถูกบันทึกเป็นคำสั่งซื้อใหม่เพื่อวัตถุประสงค์ในการติดตามในอนาคต หากคุณกำลังมองหาฟีเจอร์พิเศษนี้ ให้เช็คอิน Stripe อย่างรวดเร็วเพื่อรับบัญชีของคุณโดยไม่ต้องจ่ายค่าสมัครสมาชิกรายวัน
  • จุดบกพร่อง: เปลี่ยนการตั้งค่าในการเรียก API ของ PayPal/PayPal Express จาก AUTOBILLAMT เป็น AUTOBILLOUTAMT การโทรนี้กำลังหมุนไปที่ AddToNextBilling ซึ่งหมายความว่าจำนวนเงินที่ชำระไม่สำเร็จจะถูกเพิ่มเข้าไปในจำนวนเงินของรอบการเรียกเก็บเงินถัดไปหากยังไม่ได้ชำระเงิน ในกรณีส่วนใหญ่ ต้นฉบับอาจเสี่ยงต่อการถูกย้ายหรือการสมัครสมาชิกของผู้ใช้จะถูกยกเลิก แต่ในบางครั้งเท่านั้นที่ต้องใส่ใจกับความจริงที่ว่ามียอดคงเหลือถึงกำหนด (ขอบคุณ jubstuff บน GitHub)
  • จุดบกพร่อง: รูปแบบผสมในวิธี SetGateway ของคลาส MemberOrder สำหรับหยดหากไม่ได้เลือกพอร์ตเบราว์เซอร์หรือไม่รู้จักคลาสไฟล์
  • ข้อผิดพลาด/การปรับปรุง: ย้ายหมุด pmpro_before_change_membership_level ไปยังคืนการต่อสู้ก่อนหน้านี้ ก่อนที่จะดำเนินการปรับเปลี่ยนเพื่อระบุว่าระดับของรูปปั้น/วันที่สิ้นสุด/อื่นๆ ก่อนที่จะได้รับการอัปเดต (ขอบคุณ MrVibe บน GitHub)
  • การเพิ่มประสิทธิภาพ: แทนที่ตัวเลือก Force SSL พร้อมคำอธิบายว่าทั้งไซต์ใช้ HTTPS หรือไม่ คุณต้องเคารพตัวเลือกการเพิกเฉยในสถานการณ์เหล่านี้

1.8.11.2

  • ข้อผิดพลาด: มีการแนะนำข้อผิดพลาดแบบผสมใน 1.8.11 ดังนั้น PMPro จึงถูกเก็บไว้ภายใต้การใช้รหัสคูปองของเทรดเดอร์ การชำระเงินด้วยรหัสส่วนลดในขณะที่ใช้งาน 1.8.11 จะไม่สามารถติดตามการใช้รหัสส่วนลดได้อย่างถูกต้อง คุณสามารถเข้าถึงหมายเลข “Victory” ของคุณสำหรับรหัสของคุณได้อย่างรวดเร็ว และตรวจสอบการรายงาน/อื่นๆ ที่เกี่ยวข้องกับรหัสส่วนลด ผู้ใช้ส่วนเสริมสมาชิกที่ได้รับการสนับสนุนจะเต็มประสิทธิภาพ จะต้องใช้รหัสต่อไปนี้เพื่อสร้างด้วยตนเองสำหรับผู้สนับสนุนที่เช็คเอาท์
  • BUG: แก้ไขรหัสคำเตือนการหมดอายุ ตรวจสอบให้แน่ใจว่าค้นหาสมาชิกทุกคนที่กำลังจะหมดอายุเร็วๆ นี้ ในขณะเดียวกันก็ติดตามเวลาที่ส่งอีเมลด้วย เพื่อให้ผู้ใช้ไม่ได้รับอีเมลมากเกินไป
  • BUG: แก้ไขปัญหาที่ pmpro_before_change_membership_level ทำงานหลังจากเปลี่ยนระดับแล้ว
  • BUG: แก้ไขคำเตือนบางอย่าง
  • การเพิ่มประสิทธิภาพ: อัปเดตคำแปลภาษาอิตาลี (ขอบคุณแองเจโล)

1.8.11.1

  • จุดบกพร่อง: องค์ประกอบการติดตั้งลดลงใน 1.8.11 ฟิลด์ที่กำหนดเอง de pmpro_default_level ละเว้นเมื่อชำระเงิน
  • BUG: มีการเพิ่มตัวเลือกการซื้อในการเรียก DB เพื่อความสะดวกในการตรวจสอบเกตเวย์ต่างๆ
  • จุดบกพร่อง: ตอนนี้กำลังส่งพารามิเตอร์ FREQUENCY สำหรับคำสั่งซื้อ PayPal Payflow

1.8.11

  • BUG: แก้ไข URL wiki เมื่อตรวจสอบการอัปเดต addon
  • จุดบกพร่อง: ไฟล์ jquery.creditCardValidator.js แสดงอยู่ด้านล่างในส่วนนำหน้าการเรียกเก็บเงิน
  • ข้อผิดพลาด: ค่าที่ลดลง การอัปเดต IPN ของ PayPal จะใช้งานบันทึก $0 เพื่อลดอัตราการไหล
  • BUG: เปลี่ยนรูปแบบในตัวจัดการ PayPal IPN
  • จุดบกพร่อง/การปรับปรุง: เพิ่มตัวกรอง pmpro_checkout_level และตอนนี้ใช้ค่า filtr เพื่อตั้งค่า content_filters ให้เป็นค่าเดียวกับการชำระเงิน ซึ่งจะทำให้คุณสามารถใช้ตัวกรองแทนตัวกรอง (เช่น การประมวลผลรหัสย่อ) เพื่อขอความช่วยเหลือ Remove_filter('pmpro_checkout_level', 'pmpro_pmpro_checkout_level'); ในปลั๊กอินที่กำหนดเอง
  • จุดบกพร่อง/การปรับปรุง: ตัวกรอง Vikorist pmpro_confirmation_message บนเพจที่เป็นความลับ ไม่ว่าจะหรือไม่ก็ตาม ตอนนี้ยังกำหนดตัวกรอง the_content ให้กับข้อความยืนยันด้วย คุณสามารถปิดการใช้งานนี้ได้โดยใช้ Remove_filter('pmpro_confirmation_message', 'pmpro_pmpro_confirmation_message'); ในปลั๊กอินที่กำหนดเอง
  • การเพิ่มประสิทธิภาพ: รหัสเหตุการณ์ IPN การติดตามใหม่ในบันทึกคำสั่งซื้อสำหรับคำสั่งซื้อที่เกิดซ้ำ
  • การเพิ่มประสิทธิภาพ: เพิ่ม hook pmpro_subscription_ipn_event_processed ให้กับตัวจัดการ IPN
  • การเพิ่มประสิทธิภาพ: เพิ่มตัวกรอง pmpro_set_message เพื่อเปลี่ยนข้อความแสดงข้อผิดพลาด PMPro ส่งข้อความและพิมพ์
  • การเพิ่มประสิทธิภาพ: รายการหมวดหมู่ใหม่ในรูปแบบลำดับชั้นในส่วน การปรับส่วนต่างๆ ในระดับของอนุสาวรีย์
  • การเพิ่มประสิทธิภาพ: เพิ่มฟังก์ชัน pmpro_areLevelsFree() สำหรับการตรวจสอบ เนื่องจากทุกระดับในระดับของระดับหายไป
  • การเพิ่มประสิทธิภาพ: เพิ่ม pmpro_getLevelsCost() - ด้วยฟังก์ชัน s - รับต้นทุนรวมของหลายระดับในอาร์เรย์
  • การเพิ่มประสิทธิภาพ: เพิ่ม pmpro_getLevelsExpiration() - พร้อมด้วยฟังก์ชัน s - เพื่อเพิ่มข้อความการเชื่อมต่อสำหรับหลายระดับในอาร์เรย์
  • การเพิ่มประสิทธิภาพ: สร้างฟังก์ชัน pmpro_getLevelAtCheckout ซึ่งแยกตรรกะของการสร้าง pmpro_level ส่วนกลางเมื่อชำระเงิน
  • การเพิ่มประสิทธิภาพ: เพิ่มรายการวิกิตัวกรอง pmpro_members_list_user ในรายชื่อสมาชิกผู้ดูแลระบบและการส่งออก CSV รายชื่อสมาชิก
  • การเพิ่มประสิทธิภาพ: เพิ่มพารามิเตอร์ที่ 4 $cancel_level ใน pmpro_changeMembershipLevel() เป็นผลให้รูบาร์บจะถูกเพิ่มเข้าไปในการเสริมความแข็งแกร่งของสถานที่และในประตู พารามิเตอร์นี้ยังรวมฮุก pmpro_before_change_membership_level และฮุก pmpro_after_change_membership_level
  • การเพิ่มประสิทธิภาพ: เพิ่มฟังก์ชันใหม่ pmpro_cancelMembershipLevel($level_id, $user_id, $old_level_status) ซึ่งอนุญาตให้คุณส่งพารามิเตอร์ $cancel_level ไปยัง pmpro_changeMembershipLevel()
  • การเพิ่มประสิทธิภาพ: อัปเดตหน้ายกเลิกที่ส่วนหน้าเพื่อรองรับการเป็นสมาชิกหลายรายการต่อผู้ใช้ สมาชิกทั้งหมดจะแสดง คุณสามารถเปิดใช้งานการเป็นสมาชิกอื่น ๆ ได้ ภาษาของปุ่มยืนยันกล่าวถึงการเป็นสมาชิกและบัญชี
  • การเพิ่มประสิทธิภาพ: เพิ่มฟังก์ชัน pmpro_getMemberOrdersByCheckoutID($checkout_id) เพื่อรองรับการเป็นสมาชิกหลายรายต่อผู้ใช้และอื่น ๆ โดยใช้ checkout_id
  • การเพิ่มประสิทธิภาพ: เพิ่มวิธีการคืนเงิน ($order, $transaction_id) ให้กับคลาส PMPro_stripe นี่จะเป็น vikoristano z การเป็นสมาชิกหลายรายการต่อผู้ใช้ addon และในที่สุดก็ใช้ในพื้นที่อื่นโดยปลั๊กอินหลัก

การทำงานกับฐานข้อมูลมักจะกลายเป็นส่วนสำคัญในการดำเนินโครงการอินเทอร์เน็ต การเพิ่มประสิทธิภาพโภชนาการมักเกิดขึ้นในฐานะผู้ดูแลฐานข้อมูล โปรแกรมเมอร์จำเป็นต้องจัดโครงสร้างโครงสร้างตารางอย่างถูกต้อง เขียนคำสั่งที่เหมาะสมที่สุด และโค้ดที่มีประสิทธิภาพ บทความนี้จะให้ภาพรวมเล็กๆ น้อยๆ ของเทคนิคในการเพิ่มประสิทธิภาพการทำงานกับ MySQL สำหรับโปรแกรมเมอร์

1. เพิ่มประสิทธิภาพการสืบค้นของคุณสำหรับแคชการสืบค้น

เซิร์ฟเวอร์ MySQL ส่วนใหญ่ใช้การแคชแบบสอบถาม นี่เป็นหนึ่งในวิธีที่มีประสิทธิภาพในการเพิ่มประสิทธิภาพการทำงาน ซึ่งขึ้นอยู่กับกลไกฐานข้อมูลที่ทำงานอยู่เบื้องหลัง หากถูกขอให้คอมไพล์หลายครั้งเพื่อให้ได้ผลลัพธ์แคชจะเริ่มเสียหายและการดำเนินการจะเสร็จสิ้นเร็วขึ้นมาก

ปัญหาอยู่ที่ว่ามันง่ายมากและในขณะเดียวกันก็รับมาจากนักพัฒนาโปรแกรมส่วนใหญ่ก็เพิกเฉยต่อโอกาสที่ยอดเยี่ยมในการเพิ่มผลผลิตของโครงการ การกระทำเหล่านี้สามารถสร้างความผิดปกติได้อย่างมีประสิทธิภาพสำหรับแคชแบบสอบถามที่เสียหายเมื่อvikonnі

// แคชถูกเขียนลงไป อย่าปฏิบัติ $r = mysql_query("SELECT username FROM user WHERE signup_date >= CURDATE()"); //เงินสดจะถูกล้าง! $today = date("ใช่แล้ว"); $r = mysql_query("เลือกชื่อผู้ใช้จากผู้ใช้ WHERE signup_date >= "$today"");

สาเหตุที่แคชแบบสอบถามไม่ทำงานในการเรียกครั้งแรกนั้นเนื่องมาจากฟังก์ชัน vicoristan CURDATE()-

วิธีการนี้ใช้สำหรับฟังก์ชันที่ไม่ได้กำหนดไว้ทั้งหมด เช่น NOW(), RAND() เป็นต้น หากผลลัพธ์ของฟังก์ชันที่หมุนอาจมีการเปลี่ยนแปลง MySQL อาจไม่รองรับข้อมูลในแคช สิ่งที่คุณต้องทำเพื่อแก้ไขสถานการณ์คือเพิ่มแถวเพิ่มเติมในโค้ด PHP ก่อนที่จะป้อน

2. Vickory EXPLAIN สำหรับคำสั่ง SELECT ของคุณ

วิกิคำหลักอธิบายสามารถช่วยรวบรวมรูปภาพของสิ่งที่ควรใช้ MySQL สำหรับการค้นหาของคุณ รูปภาพนี้ทำให้ง่ายต่อการระบุพื้นที่เล็กๆ และปัญหาอื่นๆ ในคิวรีและโครงสร้างของตาราง

ผลลัพธ์ของแบบสอบถาม EXPLAIN จะแสดงดัชนีที่ถูกค้นหา วิธีการสแกนและเรียงลำดับตาราง และอื่นๆ

สมมติว่า SELECT (สิ่งสำคัญคือต้องย่อด้วย JOIN) โดยเพิ่มคีย์เวิร์ด EXPLAIN นำหน้า คุณสามารถ vikorystvvat PhpMyAdmin สำหรับสิ่งนี้ นี่คือผลลัพธ์ของตารางวิเวดา อาจเป็นไปได้ว่าเราลืมเพิ่มดัชนีสำหรับคอลัมน์ที่ใช้สำหรับ JOIN:

หลังจากเพิ่มดัชนีลงในฟิลด์ group_id:

ตอนนี้แทนที่จะสแกน 7883 แถว ระบบจะสแกนเพียง 9 และ 16 แถวในสองตาราง วิธีที่ดีในการประเมินประสิทธิภาพการทำงานคือการคูณตัวเลขทั้งหมดใต้คอลัมน์ "แถว" ผลลัพธ์ที่ได้จะเป็นสัดส่วนโดยประมาณกับข้อมูลที่รวบรวม

3. Vickory LIMIT 1 หากคุณต้องการสร้างแถวที่ไม่ซ้ำใคร

ในขณะนี้ การเพิ่ม LIMIT 1 ในคำขอของคุณอาจปรับปรุงประสิทธิภาพการทำงานได้ เบื้องหลังความคิดนี้ กลไกฐานข้อมูลจะเริ่มสแกนบันทึกทันทีที่พบและไม่ผ่านทั้งตารางหรือดัชนี

// ใครคือ koristuvach จาก Alabama แบบไหน? // ไม่จำเป็นต้องทำงานเช่นนี้: $ r = mysql_query("SELECT * FROM user WHERE state = "Alabama""); if (mysql_num_rows($r) > 0) ( // ... ) // แกนจะสวยงามกว่านี้มาก: $r = mysql_query("SELECT 1 FROM user WHERE state = "Alabama" LIMIT 1"); ถ้า (mysql_num_rows($r) > 0) ( // ... )

4. จัดทำดัชนีฟิลด์ตามนั้น

จัดทำดัชนีเฉพาะคีย์หลักและไม่ซ้ำกัน หากมีการค้นหารายการใดๆ ในตารางของคุณด้วยข้อความค้นหาแบบเสียง รายการเหล่านั้นจะต้องได้รับการจัดทำดัชนี

ดังที่คุณทราบ กฎคือให้หยุดนิ่งและค้นหาแถว เช่น “last_name LIKE 'a%'” หากมีการค้นหาส่วนหัวของแถว MySQL จะสามารถค้นหาดัชนีของคอลัมน์ที่ทำการค้นหาได้

คุณควรทราบด้วยว่าสำหรับการค้นหาบางประเภท ไม่สามารถใช้การจัดทำดัชนีมาตรฐานได้ ตัวอย่างเช่น เมื่อค้นหาคำว่า ("WHERE post_content LIKE '%apple%'") คุณสมบัติการจัดทำดัชนีจะไม่พร้อมใช้งาน ในกรณีเช่นนี้ จะเป็นการดีกว่าถ้า vikorist ค้นหาข้อความ mysql แบบเต็ม หรือตัดสินใจโดยอิงจากการทำดัชนี

5. การจัดทำดัชนีและรายการประเภทใหม่สำหรับผู้ที่ติดต่อ

หากคุณต้องการรองรับการสืบค้นจำนวนมากโดยใช้คำสั่ง JOIN คุณจะต้องสร้างดัชนีคอลัมน์ที่เชื่อมโยงในทั้งสองตาราง สิ่งนี้สะท้อนให้เห็นในการเพิ่มประสิทธิภาพภายในของการดำเนินการเชื่อมโยง MySQL

เรื่องเดียวกับที่เรากำลังพูดถึงคือความผิดของแม่ประเภทใหม่ ตัวอย่างเช่น หากคุณเชื่อมโยงคอลัมน์ DECIMAL กับคอลัมน์ INT บนตารางอื่น MySQL จะไม่สามารถจับคู่ชื่อดัชนีของตารางใดตารางหนึ่งจากสองตารางได้ อย่างไรก็ตาม การเข้ารหัสสัญลักษณ์อาจจะเหมือนกันสำหรับประเภทมาตรฐานทุกประเภท

// ค้นหาบริษัทจากสถานะที่เลือก $r = mysql_query("SELECT company_name FROM users LEFT JOIN companies ON (users.state = companies.state) WHERE users.id = $user_id"); // ความผิดเกี่ยวกับชื่อของรัฐมีการจัดทำดัชนี // และความผิดสำหรับแม่เป็นประเภทเดียวกันและการเข้ารหัสอักขระ // หรือ MySQL จะสแกนตารางจากภายนอก

6. อย่าใช้วิกิเรียงตาม RAND()

นี่เป็นหนึ่งในเทคนิคที่ดูเจ๋ง และโปรแกรมเมอร์ไข่หลายๆ คนก็เสียพาสต้าไป กลิ่นเหม็นไม่สามารถมองเห็นได้ว่าพวกเขากำลังสร้างปัญหาความละโมบให้กับตัวเองโดยเริ่มใช้ปรัชญานี้ในการซักถาม

หากคุณต้องการขยายแถวแบบสุ่มอย่างมีประสิทธิภาพตามคำสั่งซื้อของคุณ ก็ไม่มีทางลัดในการทำงานดังกล่าวให้สำเร็จ แน่นอนว่าหากมีการใช้งานด้วยโค้ดเพิ่มเติม มิฉะนั้นคุณจะพบกับปัญหาที่เติบโตอยู่เบื้องหลังกฎเลขชี้กำลังเนื่องจากภาระผูกพันด้านข้อมูลที่เพิ่มขึ้น ทางด้านขวาคือ MySQL ดำเนินการ RAND() (ซึ่งใช้เวลาประมวลผลหนึ่งชั่วโมง) สำหรับทุกแถวในตารางก่อนที่จะเรียงลำดับ ซึ่งจะให้คุณมีเพียงแถวเดียวเท่านั้น

// ดังนั้นจึงไม่จำเป็น: $r = mysql_query("SELECT username FROM user ORDER BY RAND() LIMIT 1"); // แกนจะง่ายกว่านี้: $r = mysql_query("SELECT count(*) FROM user"); $d = mysql_fetch_row($r); $แรนด์ = mt_rand(0, $d - 1); $r = mysql_query("เลือกชื่อผู้ใช้จากผู้ใช้จำกัด $rand, 1");

ดังนั้นคุณจึงลบจำนวนออฟเซ็ต ซึ่งน้อยกว่าจำนวนแถวอันเป็นผลมาจากการสืบค้น และคำนวณเป็นออฟเซ็ตจากประพจน์ LIMIT

7. อย่าพยายามใช้ SELECT *

ยิ่งอ่านข้อมูลจากตารางมากเท่าใด คิวรีก็จะยิ่งสมบูรณ์มากขึ้นเท่านั้น การดำเนินการดังกล่าวใช้เวลาหนึ่งชั่วโมงในการดำเนินการดิสก์ให้เสร็จสิ้น และเนื่องจากเซิร์ฟเวอร์ฐานข้อมูลเป็นเว็บเซิร์ฟเวอร์ ข้อมูลจะถูกประมวลผลและข้อมูลจะถูกถ่ายโอนระหว่างเซิร์ฟเวอร์

สัญญาณที่ดีคือการเลือกตัวเลือก SELECT

// แย่: $r = mysql_query("SELECT * FROM user WHERE user_id = 1"); $d = mysql_fetch_assoc($r); echo "ยินดีต้อนรับ ($d["ชื่อผู้ใช้"])"; // นี่สั้นกว่า: $ r = mysql_query ("เลือกชื่อผู้ใช้จากผู้ใช้ WHERE user_id = 1"); $d = mysql_fetch_assoc($r); echo "ยินดีต้อนรับ ($d["ชื่อผู้ใช้"])"; // ความศักดิ์สิทธิ์กลายเป็นสิ่งศักดิ์สิทธิ์ในพันธะอันยิ่งใหญ่ของสิ่งเหล่านี้

8.ลองใช้ช่องไอดีผ่าน

แนวปฏิบัติที่ดีคือเลือกฟิลด์รหัสของแต่ละตาราง ซึ่งตั้งค่าเป็นคีย์หลัก AUTO_INCREMENT และเป็นประเภทจากตระกูล INT มันเป็นสิ่งสำคัญ - ไม่ได้ลงนาม เพราะในกรณีนี้ความหมายไม่สามารถเป็นลบได้

เลือกว่าตารางมีฟิลด์ที่มีชื่อลูกค้าไม่ซ้ำกัน อย่าใช้เป็นคีย์หลัก ฟิลด์ที่มีประเภท VARCHAR สามารถใช้เป็นคีย์หลักได้ นอกจากนี้โครงสร้างของฐานข้อมูลของคุณจะสวยงามยิ่งขึ้นหากมีรายการตามรหัส

นอกจากนี้ คีย์หลักของกลไก MySQL vikorista สำหรับงานภายใน และฟิลด์ vikoristan id ยังช่วยสร้างความคิดที่เหมาะสมที่สุดสำหรับการนำไปใช้งาน

ปัญหาหนึ่งที่เป็นไปได้กับกฎนี้คือ “ตารางเชื่อมโยง” ซึ่งใช้เพื่อสร้างการเชื่อมต่อที่หลากหลายระหว่างตารางอื่นอีกสองตาราง ตัวอย่างเช่น ตาราง "posts_tags" มี 2 คอลัมน์: post_id, tag_id คุณสามารถใช้สิ่งต่อไปนี้เพื่ออธิบายความแตกต่างระหว่างสองตาราง "โพสต์" และ "แท็ก" ตารางนี้อธิบายไว้ว่าอาจมีคีย์หลัก ซึ่งสามารถใช้เพื่อแก้ไขฟิลด์ ID ได้

9. Vickory ENUM แทน VARCHAR

// สร้างการเตรียมการของไวรัสถ้า ($stmt = $mysqli->prepare("เลือกชื่อผู้ใช้จากผู้ใช้ WHERE state=?")) ( // ผูกไว้กับพารามิเตอร์ $stmt->bind_param("s", $state) ; / / ประกอบด้วย $stmt->execute(); // เชื่อมโยงกับผลลัพธ์ $stmt->bind_result($username); // รับค่า $stmt->fetch("%s มาจาก %s \n) ", $ชื่อผู้ใช้ , $state);$stmt->ปิด();

13. การเขียนที่ไม่มีบัฟเฟอร์

โปรดทราบว่า หากคุณออกจากข้อความจากสคริปต์ สคริปต์จะถูกขัดจังหวะจนกว่าเอกสารจะออก ลำดับการดำเนินการนี้สามารถเปลี่ยนแปลงได้โดยใช้คำขอที่ไม่มีบัฟเฟอร์

ต่อไปนี้เป็นคำอธิบายโดยย่อเกี่ยวกับฟังก์ชัน mysql_unbuffered_query() จากเอกสาร PHP:

“mysql_unbuffered_query() ส่ง SQL ไปยังเซิร์ฟเวอร์ MySQL โดยไม่ต้องลบและบัฟเฟอร์แถวผลลัพธ์โดยอัตโนมัติ เหมือนกับที่ฟังก์ชัน mysql_query() ทำ ด้วยวิธีนี้ คุณจะบันทึกหน่วยความจำทั้งหมดของคำสั่ง SQL ซึ่งแสดงชุดผลลัพธ์จำนวนมาก และคุณสามารถเริ่มประมวลผลชุดผลลัพธ์ได้ทันทีหลังจากลบแถวแรก โดยไม่ต้องรอจนกว่าคำสั่ง SQL จะถูกเพิ่มอย่างสมบูรณ์”

ป้องกัน єkіlka obmenezh คุณต้องอ่านแถวทั้งหมดหรือโทร mysql_free_result() ก่อนที่จะป้อนแถวถัดไป นอกจากนี้ยังไม่สามารถใช้ mysql_num_rows() หรือ mysql_data_seek() เพื่อตั้งค่าผลลัพธ์ได้

14. เก็บที่อยู่ IP ของคุณเป็น UNSIGNED INT

โปรแกรมเมอร์หลายคนสร้างฟิลด์ VARCHAR(15) เพื่อจัดเก็บที่อยู่ IP โดยไม่ต้องกังวลว่าจะต้องเก็บค่าใดในฟิลด์นั้น หากคุณใช้ INT ขนาดฟิลด์จะลดลงเหลือ 4 ไบต์ ดังนั้นค่าสูงสุดจะคงที่

จำเป็นต้องใช้ประเภท UNSIGNED INT เนื่องจากที่อยู่ IP ใช้ทั้งหมด 32 บิตของจำนวนเต็มที่ไม่ได้ลงนาม

$r = "อัปเดตผู้ใช้ SET ip = INET_ATON("($_SERVER["REMOTE_ADDR"])") โดยที่ user_id = $user_id";

15. ตารางที่มีบันทึกคงที่ (คงที่) จะทำงานได้เร็วขึ้น

หากทุกองค์ประกอบในตารางมีวันที่รายการคงที่ ตารางทั้งหมดจะถูกกำหนดให้เป็น "คงที่" หรือ "พร้อมรายการคงที่" ตัวอย่างประเภทงบที่สามารถใช้สำหรับรายได้คงที่: VARCHAR, TEXT, BLOB หากคุณรวมองค์ประกอบประเภทนี้อย่างน้อยหนึ่งองค์ประกอบ ตารางจะไม่ถูกมองว่าเป็น "คงที่" อีกต่อไป และกลไก MySQL ประมวลผลแตกต่างออกไป

ขณะนี้ตาราง "คงที่" ถูกรวมเข้าด้วยกันโดยกลไก MySQL ขณะที่ค้นหาบันทึก หากคุณต้องการอ่านรายการเดียวในตาราง ระบบจะคำนวณอย่างรวดเร็ว หากขนาดของแถวไม่คงที่ตำแหน่งที่เลือกของบันทึกจะต้องใช้เวลาค้นหาหนึ่งชั่วโมงและจัดตำแหน่งด้วยดัชนีของคีย์หลัก

ตารางดังกล่าวยังง่ายต่อการบันทึกและอัปเดตได้ง่ายกว่าในกรณีที่เกิดความล้มเหลว เบียร์มีกลิ่นเหม็นอยู่ได้นานกว่า ตัวอย่างเช่น หากคุณแปลงช่อง VARCHAR(20) จากช่อง CHAR(20) พื้นที่ 20 ไบต์จะถูกครอบครองโดยไม่คำนึงว่ามีการแก้ไขสิ่งใดหรือไม่

การใช้เทคนิค "พื้นแนวตั้ง" ทำให้สามารถเพิ่มเนื้อหาของตารางได้โดยการเพิ่มตัวแปรลงในตาราง

16. มิ้มแนวตั้ง

ส่วนแนวตั้ง - นี่คือส่วนแนวตั้งของโครงสร้างตารางพร้อมวิธีการปรับให้เหมาะสม

ก้น 1: คุณมีตารางสำหรับเปลี่ยนที่อยู่บ้านซึ่งไม่ค่อยได้ใช้เพิ่มเติม คุณสามารถแยกตารางและบันทึกที่อยู่ในตารางเดียวกันได้ ด้วยวิธีนี้ตารางหลักของ koristuvachs จะต้องผ่านไปตามขนาด อย่างที่คุณเห็นโต๊ะเล็ก ๆ กำลังเติบโตเร็วขึ้น

ก้น 2: ตารางมีช่อง "last_login" จะมีการอัพเดตทันทีเมื่อลูกค้าลงทะเบียนบนเว็บไซต์ หากคุณอัพเดตตารางทุกครั้งคุณจะต้องแคชข้อมูลซึ่งสามารถเปลี่ยนแปลงระบบได้ คุณสามารถดูช่องนี้ในตารางอื่นเพื่ออัปเดตตารางลูกค้าในส่วนเล็กๆ

สิ่งที่คุณต้องจำไว้ก็คือ ไม่จำเป็นต้องเชื่อมต่อระหว่างสองตารางที่คุณแยกไว้อย่างต่อเนื่อง ซึ่งอาจนำไปสู่ประสิทธิภาพการทำงานที่เพิ่มขึ้น

17. แยกขั้นตอน DELETE และ INSERT ขนาดใหญ่ออกจากกัน

หากคุณต้องการป้อนคำสั่ง DELETE หรือ INSERT ขนาดใหญ่บนเว็บไซต์ของคุณ คุณต้องระวังไม่รบกวนการรับส่งข้อมูล เมื่อการต่อสู้ครั้งใหญ่สิ้นสุดลง โต๊ะของคุณอาจถูกบล็อกและโปรแกรมของคุณจะถูกหยุดนิ่ง

Apache มีกระบวนการ/เธรดแบบขนานจำนวนมาก ด้วยเหตุนี้ สคริปต์จึงทำงานได้อย่างมีประสิทธิภาพมากขึ้นหากสคริปต์สิ้นสุดโดยเร็วที่สุด ดังนั้นเซิร์ฟเวอร์จึงไม่มีการเชื่อมต่อและกระบวนการที่เปิดอยู่มากเกินไปจนสิ้นเปลืองทรัพยากร โดยเฉพาะหน่วยความจำ

หากคุณบล็อกตารางเป็นเวลานานถึงหนึ่งชั่วโมง (เช่น 30 วินาทีขึ้นไป) บนเว็บเซิร์ฟเวอร์ที่มีปริมาณมาก คุณอาจจบลงด้วยกระบวนการและการสืบค้นที่ค้างซึ่งต้องใช้เวลาหลายชั่วโมงในการล้างข้อมูลหรือกลับไป แกนหลักของเว็บเซิร์ฟเวอร์ของคุณ

หากคุณมีสคริปต์ที่สร้างเร็กคอร์ดจำนวนมาก เพียงใช้ส่วนคำสั่ง LIMIT เพื่อกระจายออกเป็นชุดเล็กๆ เพื่อหลีกเลี่ยงสถานการณ์ที่อธิบายไว้

ในขณะที่ (1) ( mysql_query("DELETE FROM logs WHERE log_date<= "2009-10-01" LIMIT 10000"); if (mysql_affected_rows() == 0) { // выполняем удаление break; } // вы можете сделать небольшую паузу usleep(50000); }

18. ก้อนหินเล็กๆ เติบโตเร็วขึ้น

สำหรับกลไกฐานข้อมูล ดิสก์คือพื้นที่ขนาดเล็กที่สำคัญที่สุด ความพยายามในการทำให้ทุกอย่างมีขนาดเล็กลงเป็นที่รู้จักกันดีในด้านประสิทธิภาพการทำงานในการเร่งภาระผูกพันของข้อมูลที่กำลังเคลื่อนย้าย

เอกสาร MySQL มีมาตรฐานการบันทึกข้อมูลที่แตกต่างกันสำหรับทุกประเภท

หากตารางมีเพียงไม่กี่แถว ก็ไม่มีเหตุผลที่จะใช้คีย์หลักเป็น INT แทนที่จะเป็น MEDIUMINT, SMALLINT หรือ TINYINT หากคุณต้องการวันที่ ให้ใช้ DATE แทน DATETIME

จำเป็นต้องจำให้มากขึ้นเกี่ยวกับความเป็นไปได้ในการเติบโต

19. เลือกกลไกการบันทึกข้อมูลที่เหมาะสม

มีกลไกการจัดเก็บข้อมูลหลักสองประการสำหรับ MySQL: MyISAM และ InnoDB Kozhen มีความสำเร็จและข้อบกพร่องของเขา

MyISAM เหมาะอย่างยิ่งสำหรับแอปพลิเคชันที่มีข้อกำหนดการอ่านสูง แต่ไม่สามารถปรับขนาดได้ดีเนื่องจากมีบันทึกจำนวนมาก หากคุณอัปเดตหนึ่งฟิลด์ในหนึ่งแถว ตารางทั้งหมดจะถูกล็อค และกระบวนการจะไม่สามารถอ่านสิ่งใดได้จนกว่าคำขอจะเสร็จสมบูรณ์ MyISAM ให้การคำนวณอย่างรวดเร็วสำหรับการสืบค้นประเภท SELECT COUNT(*)

InnoDB เป็นเครื่องมือจัดเก็บข้อมูลที่มีความยืดหยุ่นมากกว่าและสามารถเหนือกว่า MyISAM สำหรับโปรแกรมขนาดเล็กส่วนใหญ่ นอกจากนี้ยังรองรับการบล็อกแถวซึ่งเหมาะที่สุดสำหรับการปรับขนาดตาราง นอกจากนี้ยังรองรับคุณสมบัติเพิ่มเติมเช่นธุรกรรม

20. Vickory มุมมองเชิงวัตถุ-สัมพันธ์

แนวคิดของการแมปเชิงวัตถุ (ORM – Object Relational Mapper) มีข้อดีหลายประการ ทุกสิ่งที่สามารถรับได้ใน ORM นั้นสามารถรับได้ด้วยตนเอง แต่ด้วยผลกำไรที่มากขึ้นและผลประโยชน์ที่มากขึ้นในระดับของผู้ค้าปลีก

ORM เหมาะอย่างยิ่งสำหรับ "แรงดึงดูดเชิงเส้น" ซึ่งหมายความว่าสามารถลบค่าที่แยกออกมาได้หากจำเป็น อย่างไรก็ตาม คุณต้องระมัดระวังเนื่องจากคุณสามารถทำสิ่งเล็กๆ น้อยๆ มากมายที่อาจส่งผลต่อประสิทธิภาพการทำงานของคุณได้

ORM ยังสามารถรวมการสืบค้นของคุณเข้ากับธุรกรรมที่เชื่อมโยงการสืบค้นแต่ละรายการเข้ากับฐานข้อมูล

สำหรับ PHP คุณสามารถใช้ ORM Doctrine

21. ระวังการเชื่อมต่ออย่างต่อเนื่อง

การเชื่อมต่อแบบถาวรได้รับการออกแบบเพื่อลดต้นทุนในการอัพเกรดเป็น MySQL หากมีการสร้างการเชื่อมต่อแบบถาวร จะไม่สามารถเปิดได้อีกต่อไปหลังจากที่สคริปต์เสร็จสมบูรณ์ ดังนั้นในขณะที่กระบวนการย่อยของ Apache re-vikoris กระบวนการจะถูกสร้างขึ้นใหม่สำหรับสคริปต์ใหม่และ vikoris ยังเชื่อมต่อกับ MySQL อีกด้วย

มันฟังดูยอดเยี่ยมในทางทฤษฎี แต่ในความเป็นจริงแล้ว ฟังก์ชันนี้ไม่ต้องเสียเงินแม้แต่บาทเดียวเมื่อเกิดปัญหา คุณอาจพบความไม่สะดวกร้ายแรงโดยการจำกัดจำนวนการเชื่อมต่อ การต่ออายุหน่วยความจำของคุณ ฯลฯ

Apache ทำงานบนหลักการของการทำงานพร้อมกันและไม่สร้างกระบวนการลูก สาเหตุหลักคือการเชื่อมต่อแบบถาวรไม่ทำงาน ดังที่เห็นได้ชัดเจนในระบบนี้ หากคุณไม่ต้องการใช้ mysql_pconnect() ก่อน โปรดปรึกษาผู้ดูแลระบบของคุณ

ฉันไว้วางใจผู้อ่านของฉัน เมื่อเรามีข้อมูลเพียงพอ เราจะบอกคุณเกี่ยวกับหลักการทำงานกับแบบฟอร์มเกตเวย์ PHP ฉันจะแสดงให้คุณเห็นในตัวอย่างที่เป็นประโยชน์เพื่อให้คุณเข้าใจว่าทุกอย่างถูกควบคุมอย่างไร และมีการโต้ตอบกันอย่างไรระหว่างแบบฟอร์มอินพุต (ช่องป้อนข้อมูล) และไฟล์ตัวอย่างที่เขียนใน php ของฉัน ก่อนหน้านั้น คุณสามารถคว้ารายการสุดสัปดาห์ของคุณพร้อมกันได้อย่างง่ายดาย

คงจะดีไม่น้อยหากคุณมีความรู้เกี่ยวกับ HTML / CSS เพียงเล็กน้อยเพราะ... ในการเปรียบเทียบ คุณจะต้องลากโค้ดไปไว้บนเพจของคุณ เราจะไม่เรียนภาษา PHP ฉันจะแสดงการแก้ไขที่จำเป็นทั้งหมดที่คุณต้องทำเพื่อตัวคุณเอง

อัปเดต:จากการอ่านของผู้อ่าน ผมตระหนักดีว่าจำเป็นต้องมีบางสิ่งที่สวยงามและใช้งานได้จริงมากขึ้น การได้รู้จัก รู้จักและชื่นชม เลือกด้วยตัวคุณเองว่าอันไหนเหมาะกับคุณที่สุด)

อัปเดต2: เวอร์ชัน 3.0 Adaptive Landing + รูปแบบ ajax พร้อมการส่งแท็ก UTM ลองดูสิและประหลาดใจ คุณได้รับเกียรติ

ต้องเดาด้วยตัวเองว่าถ้าฉันพยายามทำงานอย่างอิสระในรูปแบบของเกตลิงก์ใน php ก่อนและโดยสุจริตแล้วมันเป็นเรื่องยากเพราะ ฉันไม่เข้าใจว่ามันจะเกิดอะไรขึ้นและอย่างไร อดทนและแน่วแน่เพื่อน ๆ แล้วทุกอย่างจะออกมาดีสำหรับคุณ

แบบฟอร์มการเรียก php - โครงสร้าง

การวิเคราะห์รูปร่างของปกเสื้อนั้นบิดเบี้ยวจากก้นของหน้า Landing Page (Landing Page) ก่อนที่คำพูดจะจบลงด้วยบทความ คุณสามารถดูวิธีการทำงานโดยใช้ปุ่มด้านล่าง ฉันกำลังแนบผลลัพธ์ของหน้าเดียวนี้และไฟล์หลักของคอมไพเลอร์-php (ไฟล์นี้จะได้รับการประมวลผลและแผ่นงานจะถูกส่งทางอีเมล)

หลังจากที่คุณดาวน์โหลดไฟล์เอาต์พุตและคลายแพ็กไฟล์เก็บถาวรแล้ว คุณจะเห็นโครงสร้างเบื้องหลังไฟล์:

  • image - รูปภาพทั้งหมดที่ใช้สำหรับหน้า Landing Page ปุ่ม ฯลฯ
  • js - สคริปต์จาวาสคริปต์ที่ให้ ตัวอย่างเช่น การรวมหน้าต่างโมดอลบนเพจและเอฟเฟกต์ภาพอื่น ๆ
  • index.html - ไฟล์ดัชนีของเว็บไซต์ด้านเดียวของเรา
  • index1.php - ไฟล์คอมไพเลอร์ที่โอนค่าของแบบฟอร์มจากนั้นแผ่นการเปลี่ยนแปลงจะถูกสร้างขึ้นและส่งไปยังที่อยู่อีเมลที่ระบุ ดังนั้น index1.php จึงทำหน้าที่เป็นเพจกลางที่แจ้งเตือนเกี่ยวกับการส่งข้อมูลสำเร็จพร้อมการเปลี่ยนเส้นทางอัตโนมัติกลับไปที่ index.html (นี่คือหน้าเดียวของเรา)

สิ่งสำคัญคือโฮสติ้งของคุณซึ่งไฟล์ของไซต์ถูกส่งนั้นรองรับการประมวลผล PHP ไม่เช่นนั้นไฟล์ index1.php จะไม่แสดงและจะไม่ได้รับการประมวลผล เพื่อชี้แจงความแตกต่างนี้ ให้ไปที่แคมเปญ ลงทะเบียนโฮสติ้งของคุณ หรือเพียงแค่ประท้วง - นี่คือวิธีการทำงาน ถ้าไม่เช่นนั้น ให้เปิดตัวเลือกการรองรับภาษา php

ดูแผนภาพปฏิสัมพันธ์ขององค์ประกอบทั้งหมด (ด้านข้าง แบบฟอร์ม สรุป)

รหัสทางออกสำหรับแบบฟอร์มเว็บไซต์และคอมไพเลอร์

มาดูการทำงานของปุ่มใดปุ่มหนึ่งที่คลิกหน้าต่างโมดอลซึ่งมีรูปแบบของปกเสื้อ ด้วยการให้คำแนะนำรหัสผลลัพธ์ - มากกว่าหนึ่งครั้ง วางสองครั้งที่ด้านข้างและร้องขอ คุณจะต้องปรับแต่งการออกแบบและความต้องการของคุณเอง

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ปิดกริ่งประตู

ปิดกริ่งประตู

ด้านล่างนี้เป็นโค้ดเอาต์พุตล่าสุดของ index1.php เพื่อตั้งค่าการส่งไปยังหน้าจออีเมลของคุณ ให้เปลี่ยน “ [ป้องกันอีเมล]» ให้กับคุณ มิฉะนั้น ตามหลักการแล้ว คุณสามารถลบออกได้โดยไม่มีการเปลี่ยนแปลง

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 // จากใครที่ $send = mail ($address,$sub,$mes,"Content-type:text/plain; charset = utf-8\r\nFrom:$email"); ini_set("short_open_tag", "On");header("รีเฟรช: 3; URL=index.html"); - ฉันกำลังโทรหาคุณ