[php] 自定義字段在WooCommerce變化



Answers

Question

我試圖找到解決方案獲取自定義字段變化數據在前端。 我不知道如何獲得更改變體產品列錶框的變體id。 例如顏色可變的產品包含紅色,藍色,綠色。 我添加了所有顏色組合的自定義字段。

這是我嘗試的代碼( 來源

add_action('woocommerce_product_after_variable_attributes', 'variable_fields', 10, 2);
//JS to add fields for new variations
add_action('woocommerce_product_after_variable_attributes_js', 'variable_fields_js');
//Save variation fields
add_action('woocommerce_process_product_meta_variable', 'save_variable_fields', 10, 1);

/**
 * Create new fields for variations
 *
 */
function variable_fields($loop, $variation_data) {
    ?>

    <tr>
        <td>
            <?php
// Select
            woocommerce_wp_select(
                    array(
                        'id' => '_select[' . $loop . ']',
                        'label' => __('My Select Field', 'woocommerce'),
                        'description' => __('Choose a value.', 'woocommerce'),
                        'value' => $variation_data['_select'][0],
                        'options' => array(
                            'one' => __('Option 1', 'woocommerce'),
                            'two' => __('Option 2', 'woocommerce'),
                            'three' => __('Option 3', 'woocommerce')
                        )
                    )
            );
            ?>
        </td>
    </tr>

    <?php
}

/**
 * Create new fields for new variations
 *
 */
function variable_fields_js() {
    ?>

    <tr>
        <td>
            <?php
// Select
            woocommerce_wp_select(
                    array(
                        'id' => '_select[ + loop + ]',
                        'label' => __('My Select Field', 'woocommerce'),
                        'description' => __('Choose a value.', 'woocommerce'),
                        'value' => $variation_data['_select'][0],
                        'options' => array(
                            'one' => __('Option 1', 'woocommerce'),
                            'two' => __('Option 2', 'woocommerce'),
                            'three' => __('Option 3', 'woocommerce')
                        )
                    )
            );
            ?>
        </td>
    </tr>

    <?php
}

/**
 * Save new fields for variations
 *
 */
function save_variable_fields($post_id) {
    if (isset($_POST['variable_sku'])) :

        $variable_sku = $_POST['variable_sku'];
        $variable_post_id = $_POST['variable_post_id'];
// Text Field
        $_select = $_POST['_select'];
        for ($i = 0; $i < sizeof($variable_sku); $i++) :
            $variation_id = (int) $variable_post_id[$i];
            if (isset($_select[$i])) {
                update_post_meta($variation_id, '_select', stripslashes($_select[$i]));
            }
        endfor;
// Checkbox

    endif;
}

這一切都保存正確,但在前端我無法得到相應的變化的價值,但我仍然找到一個解決方案。 就像在前端,如果你改變它的變化,它同時改變價格。 我想在變化價格之上顯示另一個信息。 這是可能做woocommerce。 這是截圖。

後端變量產品

預期的輸出在前端

如何顯示更改列錶框的自定義字段數據?






Links