将自定义产品输入保存到 WooCommerce 中的数据库

Save custom product input to database in WooCommerce

我对数据库使用如下代码:

$attribute_R_0 = wc_get_product( $post_id );
$title_top_R_0 = isset( $_POST['custom_text_field_title_related'] ) ? $_POST['custom_text_field_title_related'] : '';
$attribute_R_0->update_meta_data( 'custom_text_field_title_related', sanitize_text_field( $title_top_R_0 ) );
$attribute_R_0->save();

但我想使用一个条件来避免在 db 中创建一个空白 table,哪个是正确的? A 还是 B?

答:

if ('custom_text_field_title_related') {
    $attribute_R_0 = wc_get_product( $post_id );
    $title_top_R_0 = isset( $_POST['custom_text_field_title_related'] ) ? $_POST['custom_text_field_title_related'] : '';
    $attribute_R_0->update_meta_data( 'custom_text_field_title_related', sanitize_text_field( $title_top_R_0 ) );
    $attribute_R_0->save();
}

乙:

$attribute_R_0 = wc_get_product( $post_id );
$nui_1 = $attribute_14->get_meta( 'custom_text_field_title_related' );
if ($nui_1 ){
$title_top_R_0 = isset( $_POST['custom_text_field_title_related'] ) ? $_POST['custom_text_field_title_related'] : '';
$attribute_R_0->update_meta_data( 'custom_text_field_title_related', sanitize_text_field( $title_top_R_0 ) );
$attribute_R_0->save();
}

None 个……为了避免在数据库 table 中出现空白条目,您应该改用:

if ( isset( $_POST['custom_text_field_title_related'] ) && ! empty( $_POST['custom_text_field_title_related'] ) ) {
    $attribute_R_0 = wc_get_product( $post_id );
    $attribute_R_0->update_meta_data( 'custom_text_field_title_related', sanitize_text_field( $_POST['custom_text_field_title_related'] ) );
    $attribute_R_0->save();
}

或更好:

$field_key_R_0 = 'custom_text_field_title_related';

if ( isset( $_POST[$field_key_R_0] ) && ! empty( $_POST[$field_key_R_0] ) ) {
    $attribute_R_0 = wc_get_product( $post_id );
    $attribute_R_0->update_meta_data( $field_key_R_0, sanitize_text_field( $_POST[$field_key_R_0] ) );
    $attribute_R_0->save();
}