WPSC_UPDATE_META Функция в PHP Как тоже ее использовать? - PullRequest
1 голос
/ 31 марта 2012

Кто-нибудь, кто знаком с этим, знает, как его использовать?Я не могу найти документацию по этой функции нигде.и можно ли это использовать для обновления, скажем, например, поля веса и изменения его значения по умолчанию в фунтах на опции?

Я предполагаю, что правильная настройка будет выглядеть примерно так, но я понятия не имею, что входит вТип.

wpsc_update_meta($post_id, 'weight', '3', $type); 
wpsc_update_meta($post_id, 'weight_unit', 'ounce', $type);

Есть идеи, ребята?Полная функция приведена ниже.

function wpsc_update_meta( $object_id = 0, $meta_key, $meta_value, $type, $global = false ) {
global $wpdb;
if ( !is_numeric( $object_id ) || empty( $object_id ) && !$global ) {
    return false;
}
$cache_object_id = $object_id = (int) $object_id;

$object_type = $type;

$meta_key = wpsc_sanitize_meta_key( $meta_key );

$meta_tuple = compact( 'object_type', 'object_id', 'meta_key', 'meta_value', 'type' );
$meta_tuple = apply_filters( 'wpsc_update_meta', $meta_tuple );
extract( $meta_tuple, EXTR_OVERWRITE );

$meta_value = $_meta_value = maybe_serialize( $meta_value );
$meta_value = maybe_unserialize( $meta_value );

$cur = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM `".WPSC_TABLE_META."` WHERE `object_type` = %s AND `object_id` = %d AND `meta_key` = %s", $object_type, $object_id, $meta_key ) );
if ( !$cur ) {
    $wpdb->insert( WPSC_TABLE_META, array( 'object_type' => $object_type, 'object_id' => $object_id, 'meta_key' => $meta_key, 'meta_value' => $_meta_value ) );
} elseif ( $cur->meta_value != $meta_value ) {
    $wpdb->update( WPSC_TABLE_META, array( 'meta_value' => $_meta_value), array( 'object_type' => $object_type, 'object_id' => $object_id, 'meta_key' => $meta_key ) );
}
wp_cache_delete( $cache_object_id, $object_type );

if ( !$cur ) {
    return true;
}
}

1 Ответ

0 голосов
/ 01 апреля 2012

Я не знаком с плагином электронной коммерции, но предполагаю, что эта функция является своего рода реализацией функции WP update_metadata().Если это так, то параметр $type должен иметь то же значение, что и параметр $ meta_type в update_metadata() (например, post_type, taxonomy ...).Также посмотрите на использование wp_cache_delete() внизу.Это может дать вам несколько дополнительных советов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...