【问题标题】:How to check for an array of product Ids in WooCommerce如何在 WooCommerce 中检查一系列产品 ID
【发布时间】:2021-03-26 06:05:27
【问题描述】:

我正在为特定产品更改 WooCommerce 商店页面上的“添加到购物车”按钮的文本:

add_filter( 'woocommerce_product_add_to_cart_text', 'add_to_cart_text' );
function add_to_cart_text( $default ) {
    if ( get_the_ID() == 1 ) {
        return __( 'Text1', 'your-slug' );
    } elseif ( get_the_ID() == 2 ) {
        return __( 'Text2', 'your-slug' );
    } elseif ( get_the_ID() == 3) {
        return __( 'Text3', 'your-slug' );
    } else {
        return $default;
    }
}

如果我有两个或多个 ID 需要具有相同的按钮文本,我如何将这些 ID 的数组添加到我的函数中?

【问题讨论】:

    标签: php arrays wordpress woocommerce product


    【解决方案1】:

    您可以使用in_array() PHP conditional function 喜欢:

    add_filter( 'woocommerce_product_add_to_cart_text', 'custom_add_to_cart_text', 10, 2 );
    function custom_add_to_cart_text( $text, $product ) {
        if ( in_array( $product->get_id(), array(1) ) ) {
            $text = __( 'Text1', 'text-domain' );
        } elseif ( in_array( $product->get_id(), array(2) ) ) {
            $text = __( 'Text2', 'text-domain' );
        } elseif ( in_array( $product->get_id(), array(3, 4) ) ) {
            $text = __( 'Text3', 'text-domain' );
        }
        return $text;
    }
    

    它应该可以工作。

    你还应该在你的钩子函数中使用$product缺失的参数。

    【讨论】:

    • 我的意思是我的产品需要设置唯一的文本,但也有其他共享相同文本的产品。例如,产品 ID 1 应该有 text1,产品 ID 2 应该有 text2,产品 ID 3 和 4 应该有 text3。
    【解决方案2】:

    如果您想为将来的目的做动态,那么您可以将您的 add_to_cart_text 保存到自定义字段,您可以在 woocommerce_product_add_to_cart_text 挂钩中检索它们。检查下面的代码。

    add_filter( 'woocommerce_product_add_to_cart_text', 'add_to_cart_text', 10, 2 );
    function add_to_cart_text( $default, $product ) {
    
        if( get_post_meta( $product->get_id(), 'add_to_cart_text', true ) != '' ){
            return get_post_meta( $product->get_id(), 'add_to_cart_text', true );
        }
    
        return $default;
    }
    

    将您的 add_to_cart_text 保存到此处的自定义文件中。

    【讨论】:

      【解决方案3】:

      您可以使用in_array() 函数。

      add_filter( 'woocommerce_product_add_to_cart_text', 'add_to_cart_text' );
      function add_to_cart_text( $default ) {
          global $product;
          $number_array = array(1, 2, 3, 4);
          $number_second = array(5, 6, 7, 8);
          $number_third = array(9, 10, 11, 12);
          if ( in_array($product->get_id(), $number_array ) ) {
              return __( 'Text1', 'your-slug' );
          } elseif ( in_array($product->get_id(), $number_second ) ) {
              return __( 'Text2', 'your-slug' );
          } elseif ( in_array($product->get_id(), $number_third ) ) {
              return __( 'Text3', 'your-slug' );
          } else {
              return $default;
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2021-07-11
        • 2019-06-20
        • 2015-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-02
        • 1970-01-01
        • 2021-12-04
        相关资源
        最近更新 更多