Ẩn giá và chức năng thanh toán trong thương mại điện tử


17

Tôi biết câu hỏi này có thể quá rộng, nhưng tôi đang tìm một chút hướng. Khách hàng của tôi có một cửa hàng thương mại điện tử với 30-40 sản phẩm. Vì bất kỳ lý do gì họ không muốn bán hàng trực tuyến nữa, nhưng họ muốn giữ lại các trang sản phẩm, thông tin, v.v. trên trang web của họ.

Có cách nào, sử dụng móc hay cách khác, để ẩn những thứ như giá cả, thêm vào nút giỏ hàng, v.v. trong thương mại điện tử không? Hoặc tôi chỉ nên chỉnh sửa các tập tin mẫu php?

Câu trả lời:


23

may mắn là thương mại điện tử có nhiều móc, điều này loại bỏ giá và nút:

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 );

bạn có thể đào sâu vào content-product.phpcontent-single-product.phpnếu bạn cần loại bỏ nhiều thứ hơn.

Tôi có thể tưởng tượng không chỉ có giá / nút mà bạn muốn ẩn / loại bỏ (như các trang / chức năng), hướng dẫn này cung cấp cho bạn một số gợi ý


Tôi có đúng khi nghĩ rằng những cái móc đó phải được chèn vào hàm.php không? Nếu vậy, có một phần cụ thể tôi cần phải đặt chúng vào? Nếu chúng hoạt động, có lẽ chức năng giỏ hàng sẽ không còn hiển thị, ngoài một số kiểu dáng, phải không?
James

1
vâng, bạn có thể đặt chúng trong hàm.php và không quan trọng bạn đặt chúng ở đâu trong hàm khác. Thông thường tất cả các cách ở cuối tập tin là an toàn nhất, miễn là bạn không đặt chúng sau lần cuối ?>. Điều này sẽ không xóa trang giỏ hàng, nhưng nó thực sự sẽ loại bỏ khả năng thêm bất cứ thứ gì vào giỏ hàng. Nếu bạn không thích trang giỏ hàng ở bất cứ đâu, bạn nên tương đối an toàn.
Ewout

Nó hoạt động. Nhưng điều này thật kỳ lạ. Sau khi áp dụng điều này, hình ảnh sản phẩm dừng lại xuất hiện. Nó hiển thị một khoảng trống cho vị trí của chúng và khi tôi đưa chuột qua chúng và nhấp vào chúng, chúng hiển thị cho tôi hình ảnh phù hợp. Bạn có một ý tưởng về lý do tại sao điều đó xảy ra?
Brethlosze

13

Mở rộng mã trên (cảm ơn Ewout), đoạn mã sau sẽ loại bỏ tất cả giá và các nút 'thêm vào giỏ hàng' trên tất cả các sản phẩm thương mại điện tử, cũng như đưa ra lời giải thích về lý do. Tôi cần mã cho một trang web cung cấp các sản phẩm bán trực tiếp và để tuân thủ các quy tắc của họ, tôi không thể hiển thị giá cho công chúng.

Thêm bộ lọc vào tệp tin.php của chủ đề.

    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.';
      }

}

Điều này thật lạ. Sau khi áp dụng điều này, hình ảnh sản phẩm dừng lại xuất hiện. Nó hiển thị một khoảng trống cho vị trí của chúng và khi tôi đưa chuột qua chúng và nhấp vào chúng, chúng hiển thị cho tôi hình ảnh phù hợp. Bạn có một ý tưởng về lý do tại sao điều đó xảy ra?
Brethlosze

Mã này không hoạt động trong WooC Commerce v 3.2.1:-)
Steve

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

Điều này sẽ hoàn toàn ngăn chặn thanh toán và ẩn tất cả giá bằng cách:

  • Làm cho tất cả các sản phẩm không thể mua được (dòng 1)
  • Làm trống HTML giá (dòng 2)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.