Php 在Woocommerce 3的商店页面的“添加到购物车”下添加额外按钮

Php 在Woocommerce 3的商店页面的“添加到购物车”下添加额外按钮,php,wordpress,button,woocommerce,product,Php,Wordpress,Button,Woocommerce,Product,我是一名nube编码员,正在尝试在我主页上的products提要的add to cart按钮下添加一个额外的按钮。我使用一个短代码在我的Woocommerce网站的首页上只显示一类产品(在本例中,它作为登录页,是Wordpress微站点) 问题是我无法让它显示在按钮下。我有一个插件,可以添加一个额外的按钮,链接到预览文档,但只能在单个产品页面上。所以,我在代码中使用了DIV类,并尝试将其插入到products提要下。我试图实现的是印刷书籍的PDF预览。你可以在下面找到我的代码,我确信它有很多错误

我是一名nube编码员,正在尝试在我主页上的products提要的add to cart按钮下添加一个额外的按钮。我使用一个短代码在我的Woocommerce网站的首页上只显示一类产品(在本例中,它作为登录页,是Wordpress微站点)

问题是我无法让它显示在按钮下。我有一个插件,可以添加一个额外的按钮,链接到预览文档,但只能在单个产品页面上。所以,我在代码中使用了DIV类,并尝试将其插入到products提要下。我试图实现的是印刷书籍的PDF预览。你可以在下面找到我的代码,我确信它有很多错误

我也不知道如何编码,以便它使用我在后端为每个产品预览文档插入的链接。现在我有一个通用的链接设置用于测试目的

add_action( 'woocommerce_after_shop_loop_item', 'content_after_addtocart_button'); function content_after_addtocart_button() { 
echo '<div class="product_meta wcdp-preview-btn-div"><a class="wcdp-preview-btn thickbox" href="https://www.google.com/">Citește fragment</a></div>'; }
add_action('woocommerce_之后是shop_loop_item','content_之后是addtocart_按钮');添加到启动按钮()后的函数内容{
回音“;}

以下代码将在Woocommerce archives as shop中的默认退出按钮下添加一个自定义按钮(我增加了挂钩优先级,因为其他插件似乎会制造麻烦):

add_action('woocommerce_之后的_-shop_-loop_项目','add_-loop_-custom_按钮',1000);
函数添加\循环\自定义\按钮(){
全球$产品;
$product\u link=$product->get\u permalink();//链接到产品(如果需要)
//定义你的按钮链接
$custom\u link=home\u url(“/something/”);
//输出
回声'
';
}
代码进入活动子主题(或活动主题)的function.php文件。测试和工作


添加-与插件一起使用:

要获取按钮的预览文档链接,您将使用以下

但是这个插件似乎只在单个产品页面上启用了一个特殊的Javascript,它在商店和归档页面上不活动,因此该链接不会打开预览灯箱,而是在Google文档中打开预览

add_action('woocommerce_之后的_-shop_-loop_项目','add_-loop_-custom_按钮',1000);
函数添加\循环\自定义\按钮(){
全球$产品;
//PDF文档预览按钮链接
如果($pdf\u doc=$product->get\u meta('wcdp\u preview\u attachment')){
$preview_link=”https://docs.google.com/viewer?url=“.urlencode($pdf_doc['url']);
$preview\u link.=“&embedded=true&TB\u iframe=true&width=600&height=550”;
//输出
回声'
';
}
}
代码进入活动子主题(或活动主题)的function.php文件。该链接起作用。

添加操作('woocommerce\u在'u shop\u loop\u item'之后,'content\u在'u addtocart\u按钮'之后);
add_action('woocommerce_after_shop_loop_item', 'content_after_addtocart_button');

function content_after_addtocart_button() {
   global $woocommerce;
   foreach($woocommerce->cart->get_cart() as $cart_item_key => $values ) {
      $_product = $values['data'];
      if( get_the_ID() == $_product->id ) {
         echo '<div class="product_meta wcdp-preview-btn-div"><a class="wcdp-preview-btn thickbox" href="http://localhost/cartsection/cart/">View Cart</a></div>';
      }
   }
}
添加到启动按钮()后的功能内容{ 全球商业; foreach($woocommerce->cart->get\u cart()作为$cart\u item\u key=>$value){ $_product=$values['data']; 如果(获取\u ID()=$\u产品->ID){ 回声'; } } }
非常感谢!不幸的是,代码不起作用。它使整个网站崩溃。关于原因有什么想法吗?@MMotoca抱歉,
中缺少一个
…请再试一次。这是一种享受!非常感谢!最后一个问题。这个按钮应该链接到通过我刚才提到的插件加载的不同PDF文件。因此,每种产品都应该有不同的链接。有没有办法将其包含在上述代码中?可以说,与“wcdp预览btn”相关的DIV类与链接的DIV类相同。我使用的插件名为Woo Document Preview,让我在产品页面中指定正确的链接。这就是我希望按钮链接到的链接。@MMotoca我已经为Woo文档预览插件添加了一个特定的东西…但是您将无法为归档页面获取lightbox预览,因为插件脚本没有为其启用…这仅适用于单个产品页面(请参阅突出显示的注释)。不管怎样,我从产品元数据中获得了正确的链接,文件名……这太棒了。更改优先级将根据情况而有所不同。
add_action( 'woocommerce_after_shop_loop_item', 'add_loop_custom_button', 1000 );
function add_loop_custom_button() {
    global $product;

    // The PDF doc preview button link
    if( $pdf_doc = $product->get_meta('wcdp_preview_attachment') ){
        $preview_link  = "https://docs.google.com/viewer?url=" . urlencode($pdf_doc['url']);
        $preview_link .= "&embedded=true&TB_iframe=true&width=600&height=550";

        // Output
        echo '<div class="product_meta wcdp-preview-btn-div">
        <a class="button alt thickbox wcdp-preview-btn" href="' . esc_url( $preview_link ) .'">' . $pdf_doc['name']  . '</a>
        </div>';
    }
}
add_action('woocommerce_after_shop_loop_item', 'content_after_addtocart_button');

function content_after_addtocart_button() {
   global $woocommerce;
   foreach($woocommerce->cart->get_cart() as $cart_item_key => $values ) {
      $_product = $values['data'];
      if( get_the_ID() == $_product->id ) {
         echo '<div class="product_meta wcdp-preview-btn-div"><a class="wcdp-preview-btn thickbox" href="http://localhost/cartsection/cart/">View Cart</a></div>';
      }
   }
}