Exemplo n.º 1
0
function wc1c_offers_end_element_handler($is_full, $names, $depth, $name)
{
    global $wpdb, $wc1c_price_types, $wc1c_price_type, $wc1c_price_type, $wc1c_offer, $wc1c_suboffers, $wc1c_price;
    if (@$names[$depth - 1] == 'ПакетПредложений' && $name == 'ТипыЦен') {
        if (!WC1C_PRICE_TYPE) {
            $wc1c_price_type = $wc1c_price_types[0];
        } else {
            foreach ($wc1c_price_types as $price_type) {
                if (@$price_type['Ид'] != WC1C_PRICE_TYPE && @$price_type['Наименование'] != WC1C_PRICE_TYPE) {
                    continue;
                }
                $wc1c_price_type = $price_type;
                break;
            }
            if (!isset($wc1c_price_type)) {
                wc1c_error("Failed to match price type");
            }
        }
        if (!empty($wc1c_price_type['Валюта'])) {
            wc1c_update_currency($wc1c_price_type['Валюта']);
            update_option('wc1c_currency', $wc1c_price_type['Валюта']);
        }
    } elseif (@$names[$depth - 1] == 'Цены' && $name == 'Цена') {
        if (!isset($wc1c_offer['Цена']) && (!isset($wc1c_price['ИдТипаЦены']) || $wc1c_price['ИдТипаЦены'] == $wc1c_price_type['Ид'])) {
            $wc1c_offer['Цена'] = $wc1c_price;
        }
    } elseif (@$names[$depth - 1] == 'ХарактеристикаТовара' && $name == 'Наименование') {
        $i = count($wc1c_offer['ХарактеристикиТовара']) - 1;
        $wc1c_offer['ХарактеристикиТовара'][$i]['Наименование'] = preg_replace("/\\s+\\(.*\\)\$/", '', $wc1c_offer['ХарактеристикиТовара'][$i]['Наименование']);
    } elseif (@$names[$depth - 1] == 'Предложения' && $name == 'Предложение') {
        if (strpos($wc1c_offer['Ид'], '#') === false || WC1C_DISABLE_VARIATIONS) {
            $guid = $wc1c_offer['Ид'];
            wc1c_replace_offer($is_full, $guid, $wc1c_offer);
        } else {
            $guid = $wc1c_offer['Ид'];
            list($product_guid, ) = explode('#', $guid, 2);
            if (empty($wc1c_suboffers) || $wc1c_suboffers[0]['product_guid'] != $product_guid) {
                if ($wc1c_suboffers) {
                    wc1c_replace_suboffers($is_full, $wc1c_suboffers);
                }
                $wc1c_suboffers = array();
            }
            $wc1c_suboffers[] = array('guid' => $wc1c_offer['Ид'], 'product_guid' => $product_guid, 'offer' => $wc1c_offer);
        }
    } elseif (@$names[$depth - 1] == 'ПакетПредложений' && $name == 'Предложения') {
        if ($wc1c_suboffers) {
            wc1c_replace_suboffers($is_full, $wc1c_suboffers);
        }
    } elseif (!$depth && $name == 'КоммерческаяИнформация') {
        $wpdb->query("DELETE FROM {$wpdb->options} WHERE option_name LIKE '_transient_%'");
        wc1c_check_wpdb_error();
        do_action('wc1c_post_offers', $is_full);
    }
}
Exemplo n.º 2
0
function wc1c_replace_subproducts($is_full, $subproducts)
{
    require_once sprintf(WC1C_PLUGIN_DIR . "exchange/offers.php");
    wc1c_replace_suboffers($is_full, $subproducts, true);
}