我正在尝试使用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’ ),
所以我将“两个”更改为“已使用”,但它仍然在前端显示“两个”。
答案 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'显示在前端。