반응형
가변 제품의 각 변동 설정에 사용자 정의 치수 필드 추가
각 제품 변형 설정에 "Built Dimensions" 필드를 추가하려고 합니다.
다음은 제가 이루고자 하는 것에 대한 조롱입니다.
저는 다음 팁들을 따랐지만 그들은 제가 원하는 대로 행동하지 않습니다.
다른 데이터 탭 중 하나에 추가하는 것입니다.변주당 필요합니다.각 변동에는 기본 치수와 출하 치수가 있습니다.
WooCommerce 사용자 정의 테이블과의 더 나은 호환성을 위해 업데이트되었습니다.
아래의 두 개의 후크 기능을 사용하면 모의고사에서 기대하는 바를 정확하게 얻을 수 있습니다.
// Add variation custom "dimentions" fields
add_action('woocommerce_variation_options_dimensions', 'add_variation_options_built_dimensions', 10, 3);
function add_variation_options_built_dimensions($loop, $variation_data, $variation)
{
$variation_built_lenght = get_post_meta($variation->ID, "_built_lenght", true);
if (!$variation_built_lenght) $variation_built_lenght = "";
$variation_built_width = get_post_meta($variation->ID, "_built_width", true);
if (!$variation_built_width) $variation_built_width = "";
$variation_built_height = get_post_meta($variation->ID, "_built_height", true);
if (!$variation_built_height) $variation_built_height = "";
?>
<p class="form-field form-row dimensions_field built_dimensions hide_if_variation_virtual form-row-last">
<label for="product_built_length"><?php
// translators: %s: dimension unit
printf(
__('Built dimensions (L×W×H) (%s)', 'woocommerce'),
get_option('woocommerce_dimension_unit')
);
?></label>
<?php echo wc_help_tip(__('Built length x width x height in decimal form', 'woocommerce')); ?>
<span class="wrap">
<input id="product_built_length" placeholder="<?php esc_attr_e('Built length', 'woocommerce'); ?>" class="input-text wc_input_decimal" size="6" type="text" name="built_lenght_<?php echo $loop; ?>" value="<?php echo esc_attr($variation_built_lenght); ?>" />
<input placeholder="<?php esc_attr_e('Built width', 'woocommerce'); ?>" class="input-text wc_input_decimal" size="6" type="text" name="built_width_<?php echo $loop; ?>" value="<?php echo esc_attr($variation_built_width); ?>" />
<input placeholder="<?php esc_attr_e('Built height', 'woocommerce'); ?>" class="input-text wc_input_decimal last" size="6" type="text" name="built_height_<?php echo $loop; ?>" value="<?php echo esc_attr($variation_built_height); ?>" />
</span>
</p>
<?php
}
사용자 정의 치수 필드 값 저장:
//Save variation custom "dimensions" fields
add_action('woocommerce_admin_process_variation_object', 'save_variation_options_built_dimensions', 10, 2);
function save_variation_options_built_dimensions($variation, $loop)
{
$built_lenght = $_POST["built_lenght_{$loop}"];
if (!empty($built_lenght)) {
$variation->update_meta_data('_built_lenght', sanitize_text_field($built_lenght));
}
$built_width = $_POST["built_width_{$loop}"];
if (!empty($built_width)) {
$variation->update_meta_data('_built_width', sanitize_text_field($built_width));
}
$built_height = $_POST["built_height_{$loop}"];
if (!empty($built_height)) {
$variation->update_meta_data('_built_height', sanitize_text_field($built_height));
}
}
코드가 작동합니다.활성 하위 테마(또는 테마)의 php 파일 또는 플러그인 파일에 있습니다.
이 코드는 WooCommerce 버전 3.8 이상에서 테스트되고 작동합니다.
다음과 같은 결과를 얻을 수 있습니다.
언급URL : https://stackoverflow.com/questions/45172481/add-custom-dimension-fields-to-each-variation-settings-for-variable-products
반응형
'prosource' 카테고리의 다른 글
C의 함수 포인터를 통해 정적 함수를 호출할 수 있습니까? (0) | 2023.10.05 |
---|---|
합성키를 외래키로(sql) (0) | 2023.10.05 |
SQL Server:날짜 시간 필드에 초를 추가하시겠습니까? (0) | 2023.09.25 |
$wpdb->와 같은 문을 사용하여 와일드카드 문자가 있는 해시를 표시할 수 있습니다. (0) | 2023.09.25 |
jQuery 트리거 파일 입력 (0) | 2023.09.25 |