我正在通过XML将附属产品导入Woocommerce。由于产品有变化,如果我使用外部/附属产品类型,我会在前端重复产品(例如,相同的产品具有不同的位置/颜色)。为了避免这种情况,我试图将这些产品作为可变产品导入,这就解决了问题,但现在我需要将“添加到购物车”更改为类似于外部产品(即链接到其他网站的按钮)。
我已经创建了一个与每个产品关联的自定义值,名为“Buy\\u Link”,现在呢?
我搜索了又搜索,但找不到一个解决方案,我认为对于有php知识的人来说,这个解决方案相对简单。
我知道我应该能够通过如下方式检索链接:
<?php echo get_post_meta($post->ID, \'Buy_Link\', true); ?>
(在一些帮助和更多搜索之后)我相信我需要放置代码:ID,‘Buy\\u Link’,true);?>
进入单个产品/添加到购物车/变量。php,但我仍然不确定它在该模板中的位置。
我想用这个链接来取代原来的“添加到购物车”按钮的一些功能。
显然,我对php代码不太熟悉,所以请具体说明如何以及在模板中放置代码的位置。非常感谢。
SO网友:Samantha
我找到了解决办法。这太简单了,我简直不敢相信我不是第一次这么做的,但你在这里(duh),我以为它比那更复杂。。。
我的解决方案如下:
将woocommerce模板复制到我的主题以覆盖单个产品/添加到购物车/变量。php
编辑变量。php,更改
<?php echo esc_url( $product->add_to_cart_url() ); ?>
到以下位置(通过调用我的自定义字段url进行替换):
<?php echo get_post_meta($post->ID, \'Buy_Link\', true); ?>
无论如何,这是一种享受,可以获得购买按钮的链接(并完全绕过购物车),但仍然允许显示变化。现在,我只需要为每个变量获取一个自定义字段,而不是每个变量产品只有一个自定义字段(没有意识到这一限制)!然后,我可以为每个变体创建适当的链接,而不仅仅是默认的产品变体。
希望这对其他人有所帮助。
SO网友:Mayeenul Islam
您获得了显示WordPress自定义字段的确切代码。我不习惯WooCommerce,但我可以用WordPress的方式,我想WooCommerce不会有什么不同,因为它们实际上都符合编码的逻辑。
下面的代码只是为了显示(PHPecho
) “字段”Buy_Link
,但它不会从数据库中提取字段。因此,在编写该代码之前,必须先从数据库中提取关联的数据。
<?php echo get_post_meta($post->ID, \'Buy_Link\', true); ?>
以WordPress的方式,我们通常使用
WP_Query()
或
get_posts()
(意外使用
query_posts()
). 在那之后,你必须把它放在
the_post()
作用
但对于WP\\U查询the_post()
功能如下$query->the_post()
, 如果我们这样做:
<?php
$args = array(\'post_type\'=>\'post\', \'post_status\'=>\'publish\');
$query = new WP_Query($args);
if($query->have_posts()){
while($query->have_posts()) {
$query->the_post(); //is actually placing the post information here ?>
<h2><?php the_title(); ?></h2>
<div><?php echo get_post_meta($post->ID, \'Buy_Link\', true); ?></div>
<?php
} //endwhile
} //endif
?>
请注意,我们正在进行
new WP_Query()
进行一些论证,然后检查
if 有我们询问过的帖子吗?然后我们开始了一个PHP
while loop
传递相同的查询,并说“show”
the_post()
仅从该查询使用
$query->
之前还有这个
$query
正在从数据库中提取数据。
因此,在Summy中,您必须将上述显示自定义字段的代码放在数据库查询中。