如何为WooCommerce特定可变产品添加变体设置字段
解决WooCommerce特定产品及其变体添加自定义字段的问题
你之前的代码只对主产品生效,是因为变体产品的$post->ID是变体自身的ID,而非所属主产品的ID,导致判断逻辑无法匹配变体。要实现需求,需要先获取变体对应的主产品ID,再进行判断:
修改后的代码示例
global $post; // 获取当前产品对应的主产品ID:变体取父ID,主产品取自身ID $parent_product_id = $post->post_parent ? $post->post_parent : $post->ID; // 指定需要添加自定义字段的主产品ID数组 $target_product_ids = array(1234, 9999); // 判断当前产品(或其主产品)是否在目标数组中 if (in_array($parent_product_id, $target_product_ids)) { // 这里放你添加自定义字段的代码 }
代码说明
- WooCommerce变体产品的
post_parent字段会存储其所属主产品的ID,因此通过$post->post_parent可以直接获取主产品ID;如果当前编辑的是主产品本身,post_parent为0,直接使用自身ID即可。 - 这样无论操作的是主产品还是它的任意变体,都会基于主产品ID进行判断,确保目标产品的所有变体都能显示自定义字段。
内容的提问来源于stack exchange,提问作者Mauro Beretta
相关产品推荐
相关产品推荐

