Я создал новую ФУНКЦИЮ для страницы своего товара.
В ней написано, КОГДА _shipping_costs пусто (без цифр), затем измените кнопку на «цена по запросу».
Страница архива
На странице архива ясно видно, что все работает отлично.
Но я спотыкаюсь об один продукт страницу, чтобы изменить кнопку.
Страница одного продукта
Это построено следующим образом.
Новая функция кнопки:
function custom_add_price_on_request_button() {
global $product;
$shipping_cost = get_post_meta($product->get_id(), '_shipping_cost', true);
if ($shipping_cost === '') {
echo '[url=mailto:[email protected]]Prijs opaanvraag[/url]';
}
}
add_action('woocommerce_after_shop_loop_item', 'custom_add_price_on_request_button', 11);
Удалить кнопку + добавить новую функцию кнопки:
function custom_remove_and_add_cart_button_single() {
global $product;
$shipping_cost = get_post_meta($product->get_id(), '_shipping_cost', true);
if ($shipping_cost === '') {
// Remove the default add to cart button
remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30);
remove_action('woocommerce_single_product_summary', 'woocommerce_single_variation_add_to_cart_button', 30);
// Add a custom 'Prijs op aanvraag' button
add_action('woocommerce_single_product_summary', 'custom_add_price_on_request_button', 35);
}
}
add_action('woocommerce_before_single_product_summary', 'custom_remove_and_add_cart_button_single', 1);
Как вы можете видеть, там написано ЕСЛИ стоимость доставки === '' (пусто), затем удалите кнопку «Добавить в корзину» и замените ее на «кнопку новой функции».
Как вы также можете видеть на странице архива, все работает нормально, но не на странице одного продукта. Кто-нибудь видит, что не так с используемым мной Hook of Woocommerce?
Я нашел несколько веб-сайтов с информацией Wooks, но не вижу возможности это исправить: https:// wcsuccessacademy.com/woocommerce-visual-hook-guide-single-product-page/
Полный код работает для страницы архива, но не для страницы одного продукта. >
// Update the price display for products with no shipping cost
function custom_price_on_request($price, $product) {
$shipping_cost = get_post_meta($product->get_id(), '_shipping_cost', true);
if ($shipping_cost === '') {
return 'Prijs op aanvraag';
}
return $price;
}
add_filter('woocommerce_get_price_html', 'custom_price_on_request', 10, 2);
// Remove the 'Add to Cart' button if there are no shipping costs on archive pages
function custom_remove_add_to_cart_button_loop() {
global $product;
$shipping_cost = get_post_meta($product->get_id(), '_shipping_cost', true);
if ($shipping_cost === '') {
remove_action('woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10);
}
}
add_action('woocommerce_before_shop_loop_item', 'custom_remove_add_to_cart_button_loop', 1);
// Verwijder de 'Toevoegen aan winkelwagen' knop op enkele productpagina's en voeg 'Prijs op aanvraag' knop toe
function custom_remove_and_add_cart_button_single_product() {
global $product;
$shipping_cost = get_post_meta($product->get_id(), '_shipping_cost', true);
if ($shipping_cost === '') {
// Verwijder de standaard 'add to cart' knop
remove_action('woocommerce_simple_add_to_cart', 'woocommerce_simple_add_to_cart', 30);
remove_action('woocommerce_single_variation', 'woocommerce_single_variation_add_to_cart_button', 20);
// Voeg een aangepaste 'Prijs op aanvraag' knop toe
add_action('woocommerce_simple_add_to_cart', 'custom_add_price_on_request_button', 30);
add_action('woocommerce_single_variation', 'custom_add_price_on_request_button', 20);
}
}
// Filter the add to cart button link verwijderd "toevoegen aan winkelwagen" en behoudt "prijs op aanvraag"
function custom_add_to_cart_button($link, $product) {
$shipping_cost = get_post_meta($product->get_id(), '_shipping_cost', true);
if ($shipping_cost === '') {
return ''; // Return an empty string to remove the button
}
return $link;
}
add_filter('woocommerce_loop_add_to_cart_link', 'custom_add_to_cart_button', 10, 2);
// Add a custom button with 'Prijs op aanvraag'
function custom_add_price_on_request_button() {
global $product;
$shipping_cost = get_post_meta($product->get_id(), '_shipping_cost', true);
if ($shipping_cost === '') {
echo '[url=mailto:[email protected]]Prijs opaanvraag[/url]';
}
}
add_action('woocommerce_after_shop_loop_item', 'custom_add_price_on_request_button', 11); // for loop pages
// Add custom CSS to make the button style the same
function custom_price_on_request_styles() {
echo '
.price-on-request-button {
background-color: #4caf50; /* Same background color */
color: #ffffff; /* Same text color */
border: 1px solid #4caf50; /* Same border */
padding: 10px 30px; /* Same padding */
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
margin: 4px 2px;
cursor: pointer;
border-radius: 4px;
box-shadow: 0 4px #999; /* Added shadow */
}
.price-on-request-button span {
display: block;
}
';
}
add_action('wp_head', 'custom_price_on_request_styles');
Подробнее здесь: https://stackoverflow.com/questions/787 ... art-button
Woocommerce Проблема с крючками для одного продукта: заменить кнопку «Добавить в корзину» ⇐ Php
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Woocommerce Проблема с крючками для одного продукта: заменить кнопку «Добавить в корзину»
Anonymous » » в форуме Php - 0 Ответы
- 22 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Добавить класс в текст кнопки «Добавить в корзину» Woocommerce на странице одного продукта
Anonymous » » в форуме Php - 0 Ответы
- 70 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Добавить класс в текст кнопки «Добавить в корзину» Woocommerce на странице одного продукта
Anonymous » » в форуме Jquery - 0 Ответы
- 32 Просмотры
-
Последнее сообщение Anonymous
-