如何将短代码插入 WooCommerce PHP 文件?

问题描述 投票:0回答:3

下面是 woocommerece-integration.php 文件中调用的现有函数,用于在任何 WordPress 页面上的产品卡中显示“添加到购物车”按钮。我有一个愿望清单插件,它提供了一个简码,我需要在

$content
:

之前显示该图标
    // Add add_to_cart btn wrapper (products loop)
                $adc = '<div class="card_bot"> 
                <div class="vamtam-add-to-cart-wrap shrt">'
                    . $content .    
                '</div></div>';
         return apply_filters( 'vamtam_woocommerce_loop_add_to_cart_link', $adc );
            }
        }

主要目标是获得左侧的愿望清单图标,并在同一行的右侧添加到购物车按钮,稍后我可以使用 CSS 进行处理,但这两个按钮应该位于同一包装类 card_bot 中,这是我的主要目标。

这是我的简码:

[wlfmc_add_to_wishlist]

我已经尝试过:

  • echo do_shortcode("[wlfmc_add_to_wishlist]");
  • php
    echo do_shortcode
    标签以及

两者似乎都会出错,并且会破坏我的 PHP 文件或将短代码显示为字符串。正确的做法是什么?

php wordpress woocommerce concatenation shortcode
3个回答
1
投票

从您提供的代码中,尝试插入

do_shortcode()
而不使用
echo
,使用
.
连接运算符,例如:

    $adc = '<div class="card_bot"> 
        <div class="vamtam-add-to-cart-wrap shrt">'
         . do_shortcode("[wlfmc_add_to_wishlist]") . $content .    
        '</div></div>';
    return apply_filters( 'vamtam_woocommerce_loop_add_to_cart_link', $adc );

应该可以。


0
投票

要在 card_bot 包装器内同一行的“添加到购物车”按钮之前使用 [wlfmc_add_to_wishlist] 短代码显示 WooCommerce 愿望清单图标,您可以在 PHP 代码中正确使用 do_shortcode()。

$wishlist_icon = do_shortcode('[wlfmc_add_to_wishlist]');

$adc = ' ' 。 $wishlist_icon 。 $内容。 ' '; 返回 apply_filters( 'vamtam_woocommerce_loop_add_to_cart_link', $adc );

这应该有效


0
投票

为了实现你想要的,我认为你应该使用钩子。

有两种类型的挂钩:

  • action:主要用于在某个事件期间添加自定义特征
  • filter:主要用于修改元素

因此,在您的情况下,您应该使用过滤器,因为您基本上想要的是修改“添加到购物车”按钮的显示方式(也称为添加包装器和您的短代码)。

我建议您在 woo hook 参考中搜索,找到适合您案例的正确钩子(也许:woocommerce_loop_add_to_cart_link):

https://woocommerce.github.io/code-reference/hooks/hooks.html

要在回调方法中添加插件的短代码,正确的方法是:

echo do_shortcode('[wlfmc_add_to_wishlist]');
© www.soinside.com 2019 - 2024. All rights reserved.