WooCommerce:使用自定义 URL 将变量订阅添加到购物车不起作用(但适用于简单订阅)

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

在我的 WordPress 项目中,我使用 woocommerce 创建了几个可变订阅产品。我为每个属性创建了名为“billing_period”的属性,其值为“每月|每年”,并生成了变化。我将每个变体更改为虚拟(因为它是订阅),并根据需要的价格设置计费间隔。

在此之前,我有简单的订阅,按月计费,单一价格。我已经将这些带有 WordPress 的产品帖子拉到我的页面模板中,并放置了一个购买按钮,该按钮重定向到如下网址:

https://example.com/checkout?add-to-cart=<<product-id>>

但是当我现在这样做时,它不起作用(使用我的变量订阅设置)。我什至尝试将以下网址放入按钮,但这个也不起作用(它重定向到主页,而不是结帐)。

https://example.com/checkout?add-to-cart<<product-id>>&billing_period=<<monthly_or_yearly>>

从商店页面或产品页面本身,可以选择选择计费周期然后注册,但我没有使用 woocommerce 自己的页面(样式等)的计划。这就是为什么我有自己的页面并想解决这个问题。

php wordpress woocommerce checkout subscription
1个回答
0
投票

对于具有一个变体属性的变体,正确的添加到购物车查询字符串是:

$checkout_url = wc_get_checkout_url(); // Get checkout URL
  1. 分类属性(在“常规属性”部分设置)

属性始终以“attribute_pa”为前缀,值是术语 slug:

$add_to-cart_url = $checkout_url . "?attribute_pa_{$attribute_slug}={$term_slug}&variation_id={$variation_id}&add-to-cart={$product_id}";
  1. 自定义属性(仅在产品本地设置,在属性(选项卡)中: 该属性始终以“attribute_”为前缀,值是选项名称:
$add_to-cart_url = $checkout_url . "?attribute_{$attribute_slug}={$option_name}&variation_id={$variation_id}&add-to-cart={$product_id}";
© www.soinside.com 2019 - 2024. All rights reserved.