ซ่อนราคาและฟังก์ชั่นชำระเงินใน woocommerce


17

ฉันรู้ว่าคำถามนี้อาจกว้างเกินไป แต่ฉันกำลังมองหาทิศทาง ลูกค้าของฉันมีร้านค้า woocommerce ที่มีผลิตภัณฑ์ 30-40 รายการ ไม่ว่าจะด้วยเหตุผลใดก็ตามพวกเขาไม่ต้องการขายออนไลน์อีกต่อไป แต่พวกเขาต้องการเก็บหน้าผลิตภัณฑ์ข้อมูล ฯลฯ บนเว็บไซต์ของพวกเขา

มีวิธีใช้ตะขอหรืออย่างอื่นเพื่อซ่อนสิ่งต่าง ๆ เช่นราคาเพิ่มปุ่มตะกร้า ฯลฯ ใน woocommerce หรือไม่ หรือฉันควรแก้ไขไฟล์เทมเพลต php?

คำตอบ:


23

โชคดี woocommerce มี hooks จำนวนมากซึ่งจะเป็นการลบราคาและปุ่ม:

remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );

คุณสามารถขุดลงไปcontent-product.phpและcontent-single-product.phpถ้าคุณต้องการที่จะลบสิ่งต่าง ๆ เพิ่มเติม

ฉันสามารถจินตนาการได้ว่ามีมากกว่าราคา / ปุ่มที่คุณต้องการซ่อน / ลบ (เช่นหน้า / ฟังก์ชั่น) กวดวิชานี้ให้คำแนะนำแก่คุณ


ฉันคิดถูกต้องว่า hooks เหล่านั้นต้องถูกแทรกเข้าไปใน ถ้าเป็นเช่นนั้นมีส่วนใดบ้างที่ฉันต้องใส่ไว้ใน หากใช้งานได้คงไม่สามารถมองเห็นฟังก์ชันการทำงานของรถเข็นได้นอกเหนือจากการจัดแต่งทรงผมแล้วใช่ไหม?
James

1
ใช่คุณสามารถวางไว้ใน function.php และมันไม่สำคัญว่าคุณจะวางไว้ที่ไหนในฟังก์ชั่นอื่น ?>โดยปกติทุกอย่างในตอนท้ายของไฟล์ที่เป็นที่ปลอดภัยที่สุดตราบใดที่คุณไม่ใส่พวกเขาหลังจากที่ล่าสุด นี่จะไม่ลบหน้ารถเข็น แต่จริง ๆ แล้วจะลบความเป็นไปได้ของการเพิ่มอะไรลงในรถเข็น หากคุณไม่ชอบหน้าตะกร้าสินค้าคุณควรจะปลอดภัย
Ewout

มันได้ผล. แต่นี่มันแปลก หลังจากใช้สิ่งนี้ภาพผลิตภัณฑ์จะไม่ปรากฏ มันแสดงพื้นที่ว่างสำหรับตำแหน่งของพวกเขาและเมื่อฉันผ่านเมาส์ไปที่พวกเขาและคลิกพวกเขาพวกเขาแสดงให้ฉันเห็นภาพที่เหมาะสม คุณมีความคิดเกี่ยวกับสาเหตุที่เกิดขึ้น?
Brethlosze

13

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

เพิ่มตัวกรองลงในไฟล์ functions.php ของธีมของคุณ

    add_filter('woocommerce_get_price_html','members_only_price');

    function members_only_price($price){

if(is_user_logged_in() ){
    return $price;
}

else {
    remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
    remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
    return 'Only <a href="' .get_permalink(woocommerce_get_page_id('myaccount')). '">Registered Users</a> are able to view pricing.';
      }

}

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

รหัสนี้ใช้ไม่ได้กับ WooCommerce v 3.2.1:-)
Steve

1
add_filter( 'woocommerce_is_purchasable', '__return_false' );
add_filter( 'woocommerce_get_price_html', '__return_empty_string' );

ทั้งหมดนี้จะป้องกันการเช็คเอาต์และซ่อนราคาทั้งหมดโดย:

  • ทำให้ผลิตภัณฑ์ทั้งหมดไม่สามารถซื้อได้ (สาย 1)
  • HTML ราคาที่ว่างเปล่า (บรรทัด 2)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.