Wordpress Woocommerce WPML transtale настраиваемые метаданные - PullRequest
0 голосов
/ 06 мая 2020

Мне нужно добавить специальные метаданные к товару в корзине. Я использую перечисленные ниже функции. Как я могу перевести эти настраиваемые метаданные на другие языки с помощью WPML? Он не добавляет в WMPL строки с доменом mytheme.

/**
 * Add custom cart item data
 */
function mytheme_add_cart_item_data($cart_item_data, $product_id, $variation_id)
{
    if ($questions = get_field('product_questions', $product_id)) {
        foreach ($questions as $question) {
            $title = $question['title'];
            $name = str_replace(' ', '_', strtolower($question['title']));
            $name = htmlspecialchars($name, ENT_COMPAT,"UTF-8");
            if (isset($_POST[$name])) {
                $cart_item_data[$name] = sanitize_text_field($_POST[$name]);
            };
        }
    }
    return $cart_item_data;
}

add_filter('woocommerce_add_cart_item_data', 'mytheme_add_cart_item_data', 10, 3);


/**
 * Display custom item data in the cart
 */
function mytheme_get_item_data($item_data, $cart_item_data)
{
    foreach ($cart_item_data as $k => $v) {
        $name = ucfirst(str_replace('_', ' ', strtolower($k)));
        if (isset($k)) {
            if ($k === 'key') {
                break;
            }
            $item_data[] = array(
                'key' => __($name, 'mytheme'),
                'value' => wc_clean($v)
            );
        }
    }
    return $item_data;
}

add_filter('woocommerce_get_item_data', 'mytheme_get_item_data', 10, 2);

/**
 * Add custom meta to order
 */
function mytheme_checkout_create_order_line_item($item, $cart_item_key, $values, $order)
{
    foreach ($values as $k => $v) {
        $name = ucfirst(str_replace('_', ' ', strtolower($k)));
        if (isset($k)) {
            if ($k === 'key') {
                break;
            }
            $item->add_meta_data(
                __($name, 'mytheme'), $v, true
            );
        }
    }

}

add_action('woocommerce_checkout_create_order_line_item', 'mytheme_checkout_create_order_line_item', 10, 4);
...