Я создал новую ФУНКЦИЮ для страницы своего товара.
В ней написано, КОГДА _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:info@yourstore.com]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:info@yourstore.com]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
Кемеровские программисты php общаются здесь
1721899643
Anonymous
Я создал новую ФУНКЦИЮ для страницы своего товара.
В ней написано, КОГДА _shipping_costs пусто (без цифр), затем измените кнопку на «цена по запросу».
Страница архива
На странице архива ясно видно, что все работает отлично.
Но я спотыкаюсь об один продукт страницу, чтобы изменить кнопку.
Страница одного продукта
Это построено следующим образом.
[b]Новая функция кнопки:[/b]
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:info@yourstore.com]Prijs opaanvraag[/url]';
}
}
add_action('woocommerce_after_shop_loop_item', 'custom_add_price_on_request_button', 11);
[b]Удалить кнопку + добавить новую функцию кнопки:[/b]
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/
[b]Полный код работает для страницы архива, но не для страницы одного продукта.[/b] >
// 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:info@yourstore.com]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');
Подробнее здесь: [url]https://stackoverflow.com/questions/78790054/woocommerce-single-product-hooks-issue-replace-add-to-cart-button[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия