如何获取 Woocommerce 变体 ID?

Rat*_*abu 6 php mysql wordpress variations woocommerce

我已经在functions.php上有了这段代码

此代码是在每个产品变体上添加一个新字段以具有日期时间输入字段,因此当当前日期超过输入日期时,变体将自动过期。

// Add Variation Settings
add_action( 'woocommerce_product_after_variable_attributes', 'variation_settings_fields', 10, 3 );

// Save Variation Settings
add_action( 'woocommerce_save_product_variation', 'save_variation_settings_fields', 10, 2 );

//Create New fields for Variations
function variation_settings_fields( $loop, $variation_data, $variation ) {
    // Text Field
    woocommerce_wp_text_input( 
        array( 
            'id'          => '_text_field_date_expire[' . $variation->ID . ']',
            'class'       => '_text_field_date_expire',
            'type'        => 'datetime-local',  
            'label'       => __( 'Date of Expiration', 'woocommerce' ), 
            'placeholder' => '',
            'desc_tip'    => 'true',
            'description' => __( 'Expiration of Each Product Variation', 'woocommerce' ),
            'value'       => get_post_meta( $variation->ID, '_text_field_date_expire', true )
        )
    );
}


//Save New Fields for Variation
function save_variation_settings_fields( $post_id ) {
    // Text Field
    $text_field = $_POST['_text_field_date_expire'][ $post_id ];
    if( ! empty( $text_field ) ) {
        update_post_meta( $post_id, '_text_field_date_expire', esc_attr( $text_field ) );
    }
}
Run Code Online (Sandbox Code Playgroud)

这是在 Wocommerce 的每个变体上添加一个新字段。

我想要做的是获取每个“_text_field_date_expire”元数据,以便我可以删除每个产品的过期变体。

我如何在functions.php上获取每个woocommerce变体ID,以便我可以添加一个规则,当它现在已经超过当前日期时它会过期?

var_dump(get_post_meta( $variation_id , '_text_field_date_expire', true ));
Run Code Online (Sandbox Code Playgroud)

这段代码是我用来获取日期时间字段的代码,但不确定如何获取每个 $variation_id 字段?

谢谢!

Sun*_*ora 12

试试这个:

\n\n
$args = array(\n    \'post_type\'     => \'product_variation\',\n    \'post_status\'   => array( \'private\', \'publish\' ),\n    \'numberposts\'   => -1,\n    \'orderby\'       => \'menu_order\',\n    \'order\'         => \'asc\',\n    \'post_parent\'   => get_the_ID() // get parent post-ID\n);\n$variations = get_posts( $args );\n\nforeach ( $variations as $variation ) {\n\n    // get variation ID\n    $variation_ID = $variation->ID;\n\n    // get variations meta\n    $product_variation = new WC_Product_Variation( $variation_ID );\n\n    // get variation featured image\n    $variation_image = $product_variation->get_image();\n\n    // get variation price\n    $variation_price = $product_variation->get_price_html();\n\n    get_post_meta( $variation_ID , \'_text_field_date_expire\', true );\n\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

希望这会对您有所帮助。了解更多信息:

\n\n\n