Получите значение цены настраиваемого поля для настраиваемого типа публикации в Woocommerce.Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Получите значение цены настраиваемого поля для настраиваемого типа публикации в Woocommerce.

Сообщение Anonymous »

Я использую следующий код, чтобы использовать настраиваемое поле настраиваемого типа публикации в качестве поля цены. Чтобы я мог добавить значение этого поля в корзину и произвести оплату.

Хорошей новостью является то, что это специальное сообщение успешно попадает в корзину, но проблема в том, что значение цены неверное.

Цена должна составлять 400 долларов США, но отображается 51 376 долларов США.

Вот код:

if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
// Put your plugin code here

add_action('woocommerce_loaded' , function (){
//Put your code here that needs any woocommerce class
//You can also Instantiate your main plugin file here
class WCCPT_Product_Data_Store_CPT extends WC_Product_Data_Store_CPT
{

/**
* Method to read a product from the database.
* @param WC_Product
*/

public function read(&$product)
{

$product->set_defaults();

if (!$product->get_id() || !($post_object = get_post($product->get_id())) || !in_array($post_object->post_type, array('refered_customer', 'product'))) { // change birds with your post type
throw new Exception(__('Invalid product.', 'woocommerce'));
}

$id = $product->get_id();

$product->set_props(array(
'name' => $post_object->post_title,
'slug' => $post_object->post_name,
'date_created' => 0 < $post_object->post_date_gmt ? wc_string_to_timestamp($post_object->post_date_gmt) : null,
'date_modified' => 0 < $post_object->post_modified_gmt ? wc_string_to_timestamp($post_object->post_modified_gmt) : null,
'status' => $post_object->post_status,
'description' => $post_object->post_content,
'short_description' => $post_object->post_excerpt,
'parent_id' => $post_object->post_parent,
'menu_order' => $post_object->menu_order,
'reviews_allowed' => 'open' === $post_object->comment_status,
));

$this->read_attributes($product);
$this->read_downloads($product);
$this->read_visibility($product);
$this->read_product_data($product);
$this->read_extra_data($product);
$product->set_object_read(true);
}

/**
* Get the product type based on product ID.
*
* @since 3.0.0
* @param int $product_id
* @return bool|string
*/
public function get_product_type($product_id)
{

$post_type = get_post_type($product_id);
if ('product_variation' === $post_type) {
return 'variation';
} elseif (in_array($post_type, array('refered_customer', 'product'))) { // change birds with your post type
return false;
} else {
return false;
}
}
}
});

}

add_filter( 'woocommerce_data_stores', 'woocommerce_data_stores' );

function woocommerce_data_stores ( $stores ) {

$stores['product'] = 'WCCPT_Product_Data_Store_CPT';

return $stores;

}

add_filter('woocommerce_product_get_price', 'woocommerce_product_get_price', 10, 2 );

function woocommerce_product_get_price( $invoice_price, $product ) {

if ($post->post->post_type === 'refered_customer') // change birds with your post type

$invoice_price = get_post_meta($post->id, "invoice_price", true);

return $invoice_price;

}


Подробнее здесь: https://stackoverflow.com/questions/507 ... oocommerce
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»