当前位置: 首页 > 知识库问答 >
问题:

如何从属于该类别的单个产品中访问位于wp admin中产品类别中的ACF字段的值?

翟奇
2023-03-14

感谢您对我的指导。

我正在使用WordPress和WooCommerce的商店工作。我有一个自定义订单表单,我想在特定产品类别中的每个产品上显示。我的想法是使用一个带有真/假复选框的ACF字段来确定该类别中的产品是否应该有订单。

复选框位于此处:

因此,我不想在代码中指定特定的产品类别,而是想检查单个产品是否属于某个类别,该类别在订单中有一个选中的复选框。

我的问题是,我不知道在选中该框时如何在产品帖子中显示订单,而不需要在所有应该显示它的帖子中添加它。当我的ACF添加到分类产品目录中时,是否可以从单个产品访问它?有什么想法吗?

我找到了get_the_terms函数,但我不确定如何使用它。这就是我一直试图访问我的ACF的方式:

function test() {
 global $post;
 $terms = get_the_terms( $post->ID, 'product_cat' );
 $queried_object = get_queried_object(); 
 $taxonomy = $queried_object->taxonomy;
 $term_id = $queried_object->term_id;  

 $checked_form = get_field('orderform', $taxonomy . '_' . $term_id);
 if($checked_form) {
      echo 'Checked!';
 }else{
      echo 'Not checked';
      var_dump($terms);
      var_dump($checked_form);
      var_dump($term_id);
 }
}
add_action('woocommerce_single_product_summary', 'test');

共有1个答案

杨学真
2023-03-14

所以我想出来了。我在这里发布我的解决方案,以防其他人寻求指导。在var_转储后,获取_条款($post)-

function woo_custom_order_form() {

 global $post;
 $terms = get_the_terms( $post->ID, 'product_cat' );

 if($terms) {
   foreach($terms as $term) {
        $term_id = $term->term_id;
        $taxonomy = $term->taxonomy;
   }
 }
 $checked_form = get_field('orderform', $taxonomy . '_' . $term_id);

 if($checked_form) {
      // Adds nav button that opens form
      add_action('woocommerce_single_product_summary','add_nav_to_single_product_form', 20);
      // Adds form on single product page
      add_action('woocommerce_single_product_summary', 'add_form_to_single_product', 10);
      // Filter hook for cf7 form on single product page
      add_filter('wpcf7_form_tag', 'add_variations_to_order_form', 10, 2);
      remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
 }
}
add_action( 'wp', 'woo_custom_order_form' );
 类似资料:
  • 我使用ACF关系字段来显示每个产品的相关博客文章。目前它的工作,但我必须检查每个产品手动显示一个相关的职位上。 问题:我如何添加产品类别,这样我就不需要手动添加200个产品,但只有一个产品类别与这篇文章相关,并将在单一视图下显示这篇文章。 是否可以将其与分类ACF字段集成(如果post具有相关的分类产品,它将显示在该类别的产品下)?可惜想不出办法

  • 问题内容: 我有一个包含一个类别的FK的产品表,创建类别表的方式是每个类别都可以有一个父类别,例如: 我需要进行选择查询,如果选择的类别是“处理器”,它将返回英特尔,奔腾,Core 2 Duo,AMD等产品。 我考虑过要创建某种“缓存”,该缓存将为数据库中的每个类别存储层次结构中的所有类别,并在where子句中包含“ IN”。这是最好的解决方案吗? 问题答案: 最好的解决方案是在数据库设计阶段。您

  • 我有一个名为“产品类型”的WooCommerce产品类别,我试图列出该类别下的所有类别,但不是这些类别的子类别。例如,我有: 产品类型 碳化物米尔斯 钓鱼工具 儿童类别 我希望它列出“电石磨坊”和“打捞工具”,但不是“儿童类别”。 这是我的代码: 但它仍然返回“儿童类别”。我不知道为什么将深度限制为“1”并将“include_children”设置为“false”不能解决这个问题。

  • 我有后台prestashop版本1.6。1.10在prestashop的前端,当我打开子类别“prisems”时,向我显示该消息,即使该类别中有与您类似的产品,也有与该类别“prisems”关联的产品

  • 这是一个产品的表格结构 这是类别的表结构 我在为包括嵌套类别在内的每个类别选择产品计数时遇到困难。例如,类别有1个产品,类别有1个产品,类别有1个产品,并且由于类别和是类别的各自直接/间接祖先,类别有3个产品。所以我需要一个查询或只是一种方法来获得这样的东西: 是否可以只使用SQL,或者我需要添加一些PHP?