Сховати ціни та функціональні можливості оформлення замовлень у вуокомерції


17

Я знаю, що це питання може бути занадто широким, але я шукаю трохи напряму. Мій клієнт має магазин вуокомерції з 30-40 продуктами. З будь-якої причини вони більше не хочуть продавати в Інтернеті, але хочуть зберегти сторінки продукту, інформацію тощо на своєму веб-сайті.

Чи є спосіб за допомогою гачків чи іншим способом приховати такі речі, як ціни, додати кнопку до кошика тощо у вуокомерції? Або мені просто редагувати файли шаблонів php?

Відповіді:


23

на щастя, у комерції є багато гачків, це знімає ціни та кнопки:

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якщо вам потрібно видалити більше матеріалів.

Я можу уявити, що є більше, ніж просто ціни / кнопки, які ви хочете приховати / видалити, хоча (як сторінки / функції), цей підручник дає вам деякі вказівки


Я маю рацію, думаючи, що ці гачки повинні бути вставлені у function.php? Якщо так, чи є певний розділ, до якого мені потрібно вкласти їх? Якщо вони працюють, імовірно, функціональність візка більше не буде видно, окрім деяких стилів, чи правильно?
— Джеймс

1
так, ви можете помістити їх у function.php, і не має значення, де ви їх помістите в інші функції. Зазвичай весь шлях у кінці файлу є найбезпечнішим, якщо ви не ставите їх після останнього ?>. Це не видалить сторінку кошика, але фактично видалить можливість додати що-небудь до кошика. Якщо вам не подобається сторінка кошика де завгодно, ви повинні бути відносно безпечними.
— Ewout

Це працює. Але це дивно. Після цього застосунок зображення виробу не припиняються. Він показує порожнє місце для їх розташування, і коли я проходжу курсор миші на них і натискаю на них, вони показують мені належне зображення. Чи маєте ви уявлення про те, чому це відбувається?
— Brethlosze

13

Розширюючи вищевказаний код (спасибі Ewout), наступний код позбудеться від усіх цін і кнопки "додати в кошик" на всі товари з питань комерційної торгівлі, а також надасть пояснення чому. Мені потрібен код для веб-сайту, який пропонує продукти прямого продажу, і щоб дотримуватися їх правил, я не можу показувати ціни широкій публіці.

Додайте фільтр у файл function.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:-)
— Стів

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

Це повністю запобіжить оформленню замовлення та сховає всі ціни за:

  • Зробити весь товар непридбаним (рядок 1)
  • Очищення HTML ціни (рядок 2)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.