天道酬勤,学无止境

Customizing Shop Page products to go straight to Affiliate Site

What do I need to use on WooCommerce, so when you see a product on the shop/catalogue page it links straight through to the affiliate site and not via the single product page.

Then if possible for that to open in a new tab.

Thanks

评论

Update: Added WC 3+ compatibility

There is 3 related custom hooked functions for your case, that you will need to customize:

### Custom Product link ###

// Removing the default hooked function
remove_action( 'woocommerce_before_shop_loop_item', 'woocommerce_template_loop_product_link_open', 10 );
// Add back the hook to a custom function
add_action ( 'woocommerce_before_shop_loop_item', 'custom_loop_product_link', 10 );
function custom_loop_product_link() {
    $custom_link = get_permalink( 16 ); // link to a custom page
    echo '<a href="' . $custom_link . '" class="woocommerce-LoopProduct-link">';
}

### Custom add-to-cart link ###

add_filter( 'woocommerce_loop_add_to_cart_link', 'customizing_add_to_cart_button', 10, 2 );
function customizing_add_to_cart_button( $link, $product ){
    // CUSTOM ADD TO CART text and link
    $add_to_cart_url = site_url('/custom_link/');
    $button_text =  __('View now', 'woocommerce');

    // compatibility with WC +3
    $product_id = method_exists( $product, 'get_id' ) ? $product->get_id() : $product->id;
    $product_type = method_exists( $product, 'get_type' ) ? $product->get_type() : $product->product_type;

    $link = sprintf( '<a href="%s" rel="nofollow" data-product_id="%s" data-product_sku="%s" data-quantity="%s" class="button product_type_%s">%s</a>',
        esc_url( $add_to_cart_url ),
        esc_attr( $product_id ),
        esc_attr( $product->get_sku() ),
        esc_attr( isset( $quantity ) ? $quantity : 1 ),
        esc_attr( $product_type ),
        esc_html( $button_text )
    );

    return $link;
}

### Custom link Redirect after add-to-cart ###

add_filter( 'woocommerce_add_to_cart_redirect', 'my_custom_add_to_cart_redirect', 10, 1 );
function my_custom_add_to_cart_redirect( $url ) {
    $url = get_permalink( 16 ); // an example: here redirect is on page ID 16
    return $url;
}

The Code goes in function.php file of your active child theme (or theme) or also in any plugin file.

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Woocommerce - external/affiliate product image to external link (buy URL)
    (Warning: I'm not a programmer) Straight to the point. I have a product catalogue http://adidassuperstar.cz, and I want images (thumbnails) point to the affiliate link - the same link as the link of a buy button under the image. I googled everything, but none of the answers actually worked for me. However, I found something which helped me just half the way. When I insert this code to functions.php it makes this: Every link point to the affiliate link - I mean even a title of a product. I want only the image to have an affiliate link, not the title. The title should point to the product page
  • Woocommerce - 外部/附属产品图片和外部链接标题(新标签)(Woocommerce - External/Affiliate Product Image and title to External Link (New tab))
    问题 我开始使用 wordpress 和 woocommerce 进行编程。 搜索 Stack 后我需要帮助。 我需要我商店产品的图片和标题指向附属链接,而无需通过单个帖子页面。 并且所有内容都在新选项卡中打开。 一直在关注这个线程:Woocommerce - 外部/附属产品图片到外部链接(购买网址) 我使用了来自 Sadoo 的 Edit # 2 代码,它非常适合我。 remove_action('woocommerce_before_shop_loop_item', 'woocommerce_template_loop_product_link_open'); add_action('woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_link_open', 15); add_action('woocommerce_before_shop_loop_item', 'woocommerce_add_aff_link_open', 10); add_action('woocommerce_before_shop_loop_item_title', 'woocommerce_add_aff_link_close', 10); function woocommerce_add_aff
  • Woocommerce - External/Affiliate Product Image and title to External Link (New tab)
    I'm starting with programming with wordpress and woocommerce. I need help after searching for Stack. I need the images and titles of the products of my store to point to the affiliate link without going through the single post page. And that everything opens in a new tab. Been following this thread: Woocommerce - External/Affiliate Product Image to External Link (Buy url) I have used the Edit # 2 code from Sadoo and it works perfectly for me. remove_action('woocommerce_before_shop_loop_item', 'woocommerce_template_loop_product_link_open'); add_action('woocommerce_before_shop_loop_item_title',
  • Woocommerce - 外部/附属产品图片到外部链接(购买 URL)(Woocommerce - external/affiliate product image to external link (buy URL))
    问题 (警告:我不是程序员)直截了当。 我有一个产品目录 http://adidassuperstar.cz,我希望图片(缩略图)指向附属链接 - 与图片下购买按钮的链接相同。 我用谷歌搜索了一切,但没有一个答案对我有用。 然而,我发现了一些对我有帮助的东西。 当我将此代码插入到functions.php 时,它会显示:每个链接都指向附属链接——我的意思是甚至是产品的标题。 我只希望图片有附属链接,而不是标题。 标题应指向我网站上的产品页面。 这是代码: // Do not include this if already open! /** * Code goes in theme functions.php. */ add_action('template_redirect', 'redirect_external_products'); function redirect_external_products() { global $post; if (is_singular( 'product' ) && ! empty( $post ) && ($product = wc_get_product($post)) && $product->is_type('external' )) { wp_redirect( $product->get_product_url() )
  • 如何在 Opencart 2.x 中自动将 url 更改为 seo?(How to change urls in <a> to seo in Opencart 2.x automatically?)
    问题 我使用的是 Opencart 2.x 版本,并且商店安装在 /shop 子目录中。 我知道如何启用 seo_url(.htaccess.txt -> .htaccess,将 RewriteBase 设置为 /shop/ 并在管理面板中启用 SEO 网址)。 搜索引擎优化网址有效,我的链接(如information/information_id=1更改为/faq等。 问题是,如果我添加 url_alias 表记录: inforamtion inforamtion/contact = contact - 这个 url 有效,但在网站上它仍然看起来像/shop/index.php?route=information/contact而不是/shop/contact 我认为它应该自动更改,但不是。 所有网站的产品、类别和信息页面的链接都已更改,但我手动添加的 - 不是。 为什么? PS:我可以在代码中更改它,但认为这不是一个好的解决方案,因为假设存在正确的方法来做我需要的。 回答1 我不确定您是否已经得到了问题的答案,但无论如何我都会把它留在这里,因为我花了几天时间才弄明白这个问题。 为了从/index.php?route=information/contact更改为/contact ,您需要两个步骤 (您可能已经准备好第 1 步) 在 OC 数据库中执行以下插入操作。 这涵盖了所有
  • 自定义添加到购物车按钮,如果客户以前购买过该产品(Custom add to cart button, if the customer has bought previously the product)
    问题 在 WooCommerce 中,如果客户以前购买过产品,我需要知道是否有任何选项可以更改添加到购物车按钮。 我们通过 WooCommerce & Membership 销售在线课程,所以我们的想法是,如果客户还没有购买课程,他必须看到“立即购买”按钮。 但是如果他购买了课程,他应该会看到一个“立即查看”按钮,每个产品(课程)都有一个自定义链接。 我怎样才能做到这一点? 谢谢。 回答1 这是一个功能齐全且经过测试的自定义功能,它将显示在商店页面和存档 woocommerce 页面上,自定义添加到购物车(文本 + 链接),供已购买产品的登录客户使用: add_filter( 'woocommerce_loop_add_to_cart_link', 'customizing_add_to_cart_button', 10, 2 ); function customizing_add_to_cart_button( $link, $product ){ $bought = false; if( is_user_logged_in() ){ $customer_orders = get_posts( array( 'numberposts' => -1, 'meta_key' => '_customer_user', 'meta_value' => get_current_user
  • 在 Woocommerce 产品页面上显示更多产品元信息(Showing more Product Meta info on Woocommerce product page)
    问题 我目前正在使用 40k+ 附属产品的 woocommerce 网上商店。 在添加到购物车按钮 woocommerce 下方会自动显示 SKU、类别和标签。 但是我想添加更多在产品元数据中提供的信息,例如尺寸、颜色和品牌。 我弄乱了 Meta.php 但到目前为止还没有运气。 我试过添加几个变量,例如: 现存的: $cat_count = sizeof( get_the_terms( $post->ID, 'product_cat' ) ); 我补充说: $col_count = sizeof( get_the_terms( $post->ID, 'product_col' ) ); 在 div 类“product_meta”中,它声明如下: <?php echo $product->get_categories( ', ', '<span class="posted_in">' . _n( 'Category:', 'Categories:', $cat_count, 'woocommerce' ) . ' ', '</span>' ); ?> 添加: <?php echo $product->get_colors( ', ', '<span class="posted_in">' . _n( 'Color:', 'Colors:', $col_count,
  • 在 iframe 中运行 Google Analytics?(Running Google Analytics in iframe?)
    问题 我们公司运营一个网站 (oursite.com),其附属合作伙伴为我们提供流量。 在某些情况下,我们使用自己的子域 (affiliate.oursite.com) 设置我们的附属机构,并且他们使用 iframe 在其网站 (affiliate.com) 上显示我们网站上的选定内容。 他们网站上的页面示例: <html> <head></head> <body> <iframe src="affiliate.example.com/example_page.html"> ...content... [google analytics code for affiliate.oursite.com] </iframe> [google analytics code for affiliate.com] </body> </html> 我们希望对affiliate.oursite.com 进行Google Analytics 跟踪。 目前,当从 iframe 加载页面时,Google 似乎没有从附属公司接收任何数据。 现在,存在安全隐患,因为 Javascript 不喜欢访问有关不同域中页面的信息,并且 IE 不喜欢为不同域设置 cookie。 有没有人有解决方案? 我们需要将affiliate.oursite.com 命名为cname.oursite.com,还是有更简洁的解决方案
  • Woocommerce 感谢页面中的 Linkwise Affiliate 集成(Linkwise Affiliate integration in Woocommerce thankyou page)
    问题 我有一家 Woocommerce 商店,我喜欢向附属公司发送订单完成数据,他们要求我包含以下代码: <script> lw("setCurrency", "numeric currency code, e.g. 978 for Euro"); lw("addItem", { id: "ID (as given in the XML) of first product in order" ,price: "unit price of first product, without VAT e.g. 13,49" ,quantity: "quantity of first product" ,payout: "1" }); lw("addItem", { id: "ID (as given in the XML) of second product in order" ,price: "unit price of second product, without VAT e.g. 25,16" ,quantity: "quantity of second product" ,payout: "1" }); // more items lw("setCoupon", "0"); lw("thankyou", { orderid: "unique order ID" ,status:
  • Linkwise Affiliate integration in Woocommerce thankyou page
    I have a Woocommerce store and I like to send an order completion data to an affiliate and they ask me to include the following code: <script> lw("setCurrency", "numeric currency code, e.g. 978 for Euro"); lw("addItem", { id: "ID (as given in the XML) of first product in order" ,price: "unit price of first product, without VAT e.g. 13,49" ,quantity: "quantity of first product" ,payout: "1" }); lw("addItem", { id: "ID (as given in the XML) of second product in order" ,price: "unit price of second product, without VAT e.g. 25,16" ,quantity: "quantity of second product" ,payout: "1" }); // more
  • Really Simple Affiliate Program
    I'm pretty new to PHP and MySQL. I'm interested in setting up a very simple affiliate program. It basically needs to be setup so that when someone clicks on the affiliate link it stays with the user until he/she signs up with my website. So for example, I want to create some nice looking webpages that my affiliates could use to advertise my site. The URLs would look something like this (ideally). www.mysite.com/splash1.php?userid=Joe So in this case, my affiliate, Joe, could use www.mysite.com/splash1.php and append ?userid=Joe and he would have an affiliate link. From here, people could click
  • 在 WooCommerce 中添加到购物车后重新标记“添加到购物车”按钮(Relabel “add to cart” button after add to cart in WooCommerce)
    问题 我想在点击后重新标记我的添加到购物车按钮并将一件商品添加到购物车,然后再添加一件商品到购物车。 这可能吗? 我有 Child-Theme function.php和第二个转到购物车按钮,这是有效的。 但是我不知道如何在将一件商品添加到购物车后解决这个重新标记的问题(商店只出售一种不同尺寸的商品)。 我希望我很清楚。 这是我的代码: add_filter( 'woocommerce_product_add_to_cart_text', 'customizing_add_to_cart_button_text', 10, 2 ); add_filter( 'woocommerce_product_single_add_to_cart_text', 'customizing_add_to_cart_button_text', 10, 2 ); function customizing_add_to_cart_button_text( $button_text, $product ) { if ( WC()->cart->get_cart_contents_count() ) return __( 'Add one more to cart', 'woocommerce' ); } else { return __( 'Add to cart ', 'woocommerce' );
  • Insert Google Analytics in php (Am I doing it the right way?)
    I'm trying to load Google Analytics on every file using php. This is not a site, these are some affiliate links structure with javascript redirectiib, so I decided to implement GA tracking code on them. They basically work like this: The root folder is affiliatestuff, and it has: googleanalytics123.php (File which contains the GA javascript), it doesn't have any php inside, just the GA code. index.thml: Blank HTML file. Inside the root folder there is a subfolder named affiliate01: Inside this folder, there is a index.php with the following code (Please not that in the following code I've
  • 用于自定义产品图像缩略图的挂钩(Hook for customizing product image thumbnail)
    问题 我需要 woo-commerce 的帮助来覆盖购物车产品图片缩略图。 我正在创建一个用于在详细信息页面中自定义产品的插件,如果我们“添加到购物车”,它将在购物车页面中使用自定义缩略图进行更新。 如果有任何钩子可用于覆盖图像,请告诉我。 回答1 我也花了很多时间寻找答案,甚至问了一个 Stackoverflow 问题(WooCommerce:使用过滤器/操作挂钩更改产品图像永久链接),现在恰好是重复的(在提交我自己的问题之前找不到这个问题)。 答案: 钩子是woocommerce_cart_item_thumbnail 。 所以在你的functions.php添加 function custom_new_product_image($a) { $class = 'attachment-shop_thumbnail wp-post-image'; // Default cart thumbnail class. $src = [PATH_TO_YOUR_NEW_IMAGE]; // Construct your img tag. $a = '<img'; $a .= ' src="' . $src . '"'; $a .= ' class="' . $class . '"'; $a .= ' />'; // Output. return $a; } add_filter(
  • 如何禁用/隐藏woocommerce单个产品页面?(How to disable/hide woocommerce single product page?)
    问题 我试图在我的 wordpress-woocommerce 网站上隐藏单个产品详细信息页面。 如何在不破坏 woocommerce 功能的情况下实现这一目标? 回答1 您可以删除在商店页面上生成的锚点,该锚点永远不会将用户重定向到单个页面。 为此,您必须将此代码粘贴到您的functions.php 文件中。 remove_action( 'woocommerce_before_shop_loop_item', 'woocommerce_template_loop_product_link_open', 10 ); 此代码将删除链接,但之后您还必须删除锚结束标记,只是它不会破坏您的 html remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_product_link_close', 5 ); 回答2 把它放在functions.php中 //Removes links add_filter( 'woocommerce_product_is_visible','product_invisible'); function product_invisible(){ return false; } //Remove single page add_filter(
  • WooCommerce 商店页面:添加到购物车按钮上的数量输入(WooCommerce Shop page: Quantity input on add to cart button)
    问题 我正在使用带有 WooCommerce 插件的 Divi 主题。 在商店页面中,我想直接在添加到购物车按钮上调整数量。 我的网站 目前您必须点击产品进入单个产品页面,然后才能添加到购物车。 我试图弄清楚是什么产生了产品列表,以便我可以修改它,但正如您可能猜到的那样,我对此很陌生。 如何在购物页面产品中添加该功能? 回答1 建议:最好使用子主题,以免丢失主题更新时要做的更改。 所以我假设您现在将使用子主题。 检查 WooCommerce > 设置 > 产品(选项卡) > 显示(子选项卡)是否正确设置了所需的行为: 在这个活动的子主题中,您将找到一个function.php文件。 如果没有,你将从你的父主题中复制它,删除里面的所有代码,除了开头的<?php标签(如果存在)和结尾的?>相同的东西(如果存在)。 完成后,您将使用woocommerce_loop_add_to_cart_link过滤器挂钩将数量添加到您的添加到购物车按钮(对于简单产品)。 您将在其中粘贴此代码片段: add_filter( 'woocommerce_loop_add_to_cart_link', 'quantity_inputs_for_woocommerce_loop_add_to_cart_link', 10, 2 ); function quantity_inputs_for
  • T-SQL如何在存储过程中动态创建表?(T-SQL How to create tables dynamically in stored procedures?)
    问题 像这样的代码,但这是错误的: CREATE PROC sp_createATable @name VARCHAR(10), @properties VARCHAR(500) AS CREATE TABLE @name ( id CHAR(10) PRIMARY KEY, --...Properties extracted from @properties ); 你能告诉我如何处理吗? 真的让我感到困扰。 回答1 您正在使用表变量,即应声明表。 这不是临时表。 您可以这样创建一个临时表: CREATE TABLE #customer ( Name varchar(32) not null ) 您可以像这样声明一个表变量: DECLARE @Customer TABLE ( Name varchar(32) not null ) 注意,临时表使用#声明,表变量使用@声明。 阅读有关表变量和临时表之间的区别的信息。 更新: 根据下面的评论,您实际上正在尝试在存储过程中创建表。 为此,您将需要使用动态SQL。 基本上,动态SQL允许您以字符串形式构造SQL语句,然后执行它。 这是您将能够在存储过程中创建表的唯一方法。 我将向您展示如何进行讨论,然后讨论为什么这通常不是一个好主意。 现在来看一个简单的示例(我尚未测试此代码,但是它应该为您提供了一个很好的指示): CREATE
  • 在 php 中插入 Google Analytics(我这样做是否正确?)(Insert Google Analytics in php (Am I doing it the right way?))
    问题 我正在尝试使用 php 在每个文件上加载 Google Analytics。 这不是一个网站,这些是一些带有 javascript redirectiib 的附属链接结构,所以我决定在它们上实施 GA 跟踪代码。 他们基本上是这样工作的: 根文件夹是affiliatestuff ,它有: googleanalytics123.php (包含 GA javascript 的文件),里面没有任何 php,只有 GA 代码。 index.thml :空白 HTML 文件。 在根文件夹中有一个名为affiliate01的子文件夹:在这个文件夹中,有一个带有以下代码的index.php (请注意,出于安全原因,我在下面的代码中更改了一些内容): 开始index.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <?php include_once (
  • Woocommerce 短代码分页(Woocommerce Shortcodes Pagination)
    问题 一直试图弄清楚如何创建一个循环来支持 woocommerce 的带有分页的短代码。 因为目前,我有一个项目,想要显示某个产品的页面,例如我有 50 个销售产品,使用这个短代码 [sale_products per_page="10"] 它只显示 10 个产品而没有分页。 关于这个问题的任何想法? 问候, 回答1 add_action( 'pre_get_posts', 'so_28367762_pre_get_posts' ); function so_28367762_pre_get_posts( $q ) { // We only want to affect the main query if ( is_admin() || ! $q->is_main_query() ) { return; } $sale_page_id = 487; // totally modify the query on the Sale Page if( isset( $q->queried_object_id ) && $q->queried_object_id === $sale_page_id ) { $q->set( 'post_type', 'product' ); $q->set( 'page', '' ); $q->set( 'pagename', '' ); if (
  • WooCommerce Shop page: Quantity input on add to cart button
    I'm using the Divi theme with WooCommerce plugin. In shop page, I would like to have the quantities adjustments directly on add to cart button . My web site Presently you have to click on the product to go in to single product page and only then is it possible to add to cart. I have tried to figure out what produces the list of products so that I can modify it, but as you probably guessed I'm very new to this. How can I add that functionality the to shop page products?