在我的 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 自己的页面(样式等)的计划。这就是为什么我有自己的页面并想解决这个问题。
对于具有一个变体属性的变体,正确的添加到购物车查询字符串是:
$checkout_url = wc_get_checkout_url(); // Get checkout URL
属性始终以“attribute_pa”为前缀,值是术语 slug:
$add_to-cart_url = $checkout_url . "?attribute_pa_{$attribute_slug}={$term_slug}&variation_id={$variation_id}&add-to-cart={$product_id}";
$add_to-cart_url = $checkout_url . "?attribute_{$attribute_slug}={$option_name}&variation_id={$variation_id}&add-to-cart={$product_id}";