woocommerce定制产品领域

时间:2014-05-22 04:56:00

标签: php wordpress woocommerce product custom-fields

我正在尝试使用woocommerce插件向产品管理界面添加自定义字段,因此我可以使用下拉菜单选择新的或用作产品的条件。

我将下拉列表显示在管理界面中,但它不会显示新产品或在产品的前端使用。

我将此代码添加到functions.php:

// Select
woocommerce_wp_select( array( 
‘id’ => ‘_conditionselect’,
‘label’ => __( ‘Condition’, ‘woocommerce’ ),
‘options’ => array(
‘one’ => __( ‘New’, ‘woocommerce’ ),
‘two’ => __( ‘Used’, ‘woocommerce’ ),
)
)
);
}

function woo_add_custom_general_fields_save( $post_id ){
// Select
$woocommerce_select = $_POST['_conditionselect'];
if( !empty( $woocommerce_select ) )
update_post_meta( $post_id, ‘_conditionselect’, esc_attr( $woocommerce_select ) );
}

我把它添加到短描述中.php:

<?php _e( 'Condition: ', ‘woocommerce’ ); ?> 
<?php
echo get_post_meta( get_the_ID(), ‘_conditionselect’, true ); 
?>

任何想法为什么这不起作用?

好的我不知道我做了什么,但现在前面的“条件:”旁边出现了“两个”这个词。但它只出现在其中一个产品上。我以为它来自这段代码:

‘two’ => __( ‘Used’, ‘woocommerce’ ), 

所以我将“两个”更改为“已使用”,但它仍然在前端显示“两个”。

1 个答案:

答案 0 :(得分:1)

完成您编写的代码后。我观察到'get_post_meta'的语法在当前上下文中是正确的。即使您将“两个”更改为“已使用”,它仍然在前端显示“两个”的原因是您在进行这些更改后未更新该产品。其中显示以前的自定义字段值。

woocommerce_wp_select的正确语法是。

public void loadAmt() {
    SharedPreferences loadamount = getSharedPreferences("TotalAmount" ,0);
    String amt = loadamount.getString("LastAmount","");
    if (amt.matches("")){
        return;
    } else {
        total = Double.parseDouble(loadamount.getString("LastAmount" ,"0"));
        et.setText(String.valueOf(total));
    }
}

'instock'和'outofstock'是将存储在db中的选项的值,并且'In stock'和'Out of stock'显示在前端。