نمایش اطلاعات محصولات در ووکامرس

درود بر شما عزیزان؛
در افزونه فروشگاه ساز ووکامرس همانطور که مطلع هستید امکانات بسیار زیادی نهفته است. اما یافتن این امکانات نیاز به بررسی و تحلیل هایی دارد که در این راه همیشه ما همراه شما هستیم. در ادامه این راه پر پیچ و خم با شما هستیم با افزونه ای بسیار بسیار حرفه ای.افزونه ای برای نمایش اطلاعات محصولات در ووکامرس به نام woocommerce custom product data fields، که در ادامه با آن بیشتر آشنا می شویم.

نمایش اطلاعات محصولات در ووکامرس با woocommerce custom product data fields

این افزونه در وب سایت شما در بخش ویرایش هر یک از محصولات فروشگاه چندین فیلد سفارشی ایجاد می کند. که برای نمایش اطلاعات محصولات در ووکامرس مناسب می باشد. اما باید توجه داشته باشید که استفاده از آن کمی دشوار است اما به صورت کامل در ادامه روش آن را توضیح خواهم داد.

شروع کار

برای شروع ابتدا افزونه را در وب سایت خود نصب و راه اندازی نمائید. وقتی افزونه در سایت شما به صورت کامل فعال شد باید در فایل function.php قالب سایت خود توابعی را بنویسید. تا این فیلد ها در صفحه ویرایش محصول شما نمایان شوند. پس برای این منظور باید کد زیر را در فایل function.php قالب وردپرس خود قرار دهید. کد زیر را در ابتدای فایل فانکشن قالب وردپرس خود پس از کد <?php قرار دهید.


/**
* WooCommerce product data tab definition
*
* @return array
*/

add_action('wc_cpdf_init', 'prefix_custom_product_data_tab_init', 10, 0);
if(!function_exists('prefix_custom_product_data_tab_init')) :

function prefix_custom_product_data_tab_init(){
$custom_product_data_fields = array();
/** First product data tab starts **/
/** ===================================== */

$custom_product_data_fields['custom_data_1'] = array(

array(
'tab_name'    =&gt; __('Custom Data', 'wc_cpdf'),
),

array(
'id'          =&gt; '_mytext',
'type'        =&gt; 'text',
'label'       =&gt; __('Text', 'wc_cpdf'),
'placeholder' =&gt; __('A placeholder text goes here.', 'wc_cpdf'),
'class'       =&gt; 'large',
'description' =&gt; __('Field description.', 'wc_cpdf'),
'desc_tip'    =&gt; true,
),

array(
'id'          =&gt; '_mynumber',
'type'        =&gt; 'number',
'label'       =&gt; __('Number', 'wc_cpdf'),
'placeholder' =&gt; __('Number.', 'wc_cpdf'),
'class'       =&gt; 'short',
'description' =&gt; __('Field description.', 'wc_cpdf'),
'desc_tip'    =&gt; true,
),

array(
'id'          =&gt; '_mytextarea',
'type'        =&gt; 'textarea',
'label'       =&gt; __('Textarea', 'wc_cpdf'),
'placeholder' =&gt; __('A placeholder text goes here.', 'wc_cpdf'),
'style'       =&gt; 'width:70%;height:140px;',
'description' =&gt; __('Field description.', 'wc_cpdf'),
'desc_tip'    =&gt; true,
),

array(
'id'          =&gt; '_mycheckbox',
'type'        =&gt; 'checkbox',
'label'       =&gt; __('Checkbox', 'wc_cpdf'),
'description' =&gt; __('Field description.', 'wc_cpdf'),
'desc_tip'    =&gt; true,
),

array(
'id'          =&gt; '_myselect',
'type'        =&gt; 'select',
'label'       =&gt; __('Select', 'wc_cpdf'),
'options'     =&gt; array(
'option_1'  =&gt; 'Option 1',
'option_2'  =&gt; 'Option 2',
'option_3'  =&gt; 'Option 3'
),
'description' =&gt; __('Field description.', 'wc_cpdf'),
'desc_tip'    =&gt; true,
),

array(
'id'          =&gt; '_myradio',
'type'        =&gt; 'radio',
'label'       =&gt; __('Radio', 'wc_cpdf'),
'options'     =&gt; array(
'radio_1' =&gt; 'Radio 1',
'radio_2' =&gt; 'Radio 2',
'radio_3' =&gt; 'Radio 3'
),
'description' =&gt; __('Field description.', 'wc_cpdf'),
'desc_tip'    =&gt; true,
),

array(
'id'         =&gt; '_myhidden',
'type'       =&gt; 'hidden',
'value'      =&gt; 'Hidden Value',
),

array(
'id'         =&gt; '_mymultiselect',
'type'       =&gt; 'multiselect',
'label'      =&gt; __('Multiselect', 'wc_cpdf'),
'placeholder' =&gt; __('Multiselect maan!', 'wc_cpdf'),
'options'     =&gt; array(
'option_1' =&gt; 'Option 1',
'option_2' =&gt; 'Option 2',
'option_3' =&gt; 'Option 3',
'option_4' =&gt; 'Option 4',
'option_5' =&gt; 'Option 5'
),
'description' =&gt; __('Field description.', 'wc_cpdf'),
'desc_tip'    =&gt; true,
'class'       =&gt; 'medium'
),

// image
array(
'id'         =&gt; '_myimage',
'type'       =&gt; 'image',
'label'      =&gt; __('Image 1', 'wc_cpdf'),
'description' =&gt; __('Field description.', 'wc_cpdf'),
'desc_tip'    =&gt; true,
),

array(
'id'         =&gt; '_mygallery',
'type'       =&gt; 'gallery',
'label'      =&gt; __('Gallery', 'wc_cpdf'),
'description' =&gt; __('Field description.', 'wc_cpdf'),
'desc_tip'    =&gt; true,
),

// Color
array(
'id'          =&gt; '_mycolor',
'type'        =&gt; 'color',
'label'       =&gt; __('Select color', 'wc_cpdf'),
'placeholder' =&gt; __('A placeholder text goes here.', 'wc_cpdf'),
'class'       =&gt; 'large',
'description' =&gt; __('Field description.', 'wc_cpdf'),
'desc_tip'    =&gt; true,
),

// Datepicker

array(
'id'          =&gt; '_mydatepicker',
'type'        =&gt; 'datepicker',
'label'       =&gt; __('Select date', 'wc_cpdf'),
'placeholder' =&gt; __('A placeholder text goes here.', 'wc_cpdf'),
'class'       =&gt; 'large',
'description' =&gt; __('Field description.', 'wc_cpdf'),
'desc_tip'    =&gt; true,
),

array(
'type'        =&gt; 'divider'
)

);

/** First product data tab ends **/
/** ===================================== */
/** Second product data tab starts **/
/** ===================================== */

$custom_product_data_fields['custom_data_2'] = array(

array(
'tab_name'    =&gt; __('Custom Data 2', 'wc_cpdf'),
),

array(
'id'          =&gt; '_mytext_2',
'type'        =&gt; 'text',
'label'       =&gt; __('Text ABCD', 'wc_cpdf'),
'placeholder' =&gt; __('A placeholder text goes here.', 'wc_cpdf'),
'class'       =&gt; 'large',
'description' =&gt; __('Field description.', 'wc_cpdf'),
'desc_tip'    =&gt; true,
)

);

return $custom_product_data_fields;

}

endif;

خب تا اینجای کار اگر کد فوق را درون فایل فانکشن خود قرار داده باشید بخش ویرایش محصول به صورت زیر خواهد شد:

Raed  تبدیل ریال به تومان در Easy Digital Downloads

edit product - نمایش اطلاعات محصولات در ووکامرس

اما پس از ذخیره سازی اگر صفحه محصول را ببینید خواهید دید که هیچ یک از این فیلد های نمایش اطلاعات محصولات در ووکامرس، نشان داده نمیشود! چرا که هنوز فراخوانی نشده اند. برای فراخوانی آن ها باید از کد های زیر استفاده کنید که آن ها را معرفی میکنم. در نهایت نیز برای شما یک مثال قرار میدهم تا بهتر متوجه شوید.

۱٫ کد بازگردانی فیلد های تک مقداری


/**
*
* Don't forget to include $wc_cpdf global variable
* $wc_cpdf-&gt;get_value($post_id, $field_id);
* $post_id = (integer) post ID
* $field_id = (string) unique field ID
*
*/

global $wc_cpdf;
echo $wc_cpdf-&gt;get_value(get_the_ID(), '_mytext');

۲٫ کد بازگردانی فیلد های چند مقداری

global $wc_cpdf;
$multiselect = $wc_cpdf-&gt;get_value($post-&gt;ID, '_mymultiselect');
foreach ($multiselect as $value) {
echo $value;
}

۳٫ کد بازگردانی تصاویر

global $wc_cpdf;
$image_id = $wc_cpdf-&gt;get_value($post-&gt;ID, '_myimage');
$size = 'thumbnail';
$image_attachment = wp_get_attachment_image($image_id, $size);
echo $image_attachment;

۴٫ کد بازگردانی تصاویر در حالت گالری


global $wc_cpdf;
$gallery = $wc_cpdf-&gt;get_value($post-&gt;ID, '_mygallery');
foreach ($gallery as $image_id) {

$size = 'thumbnail';
$image_attachment = wp_get_attachment_image($image_id, $size);

echo $image_attachment;

}

توجه داشته باشید که کد های بالا باید در ادامه کد اول البته در فایل function.php قرار گیرد. از این قطعه کدها برای نمایش اطلاعات محصولات در ووکامرس استفاده کنید.

مثال …

برای قرار دادن یک جدول در توضیحات محصول برای بیان اندازه های محصول مورد نظر! که برای این منظور باید کد زیر را در فایل function.php در ادامه <?php قرار دهید:


/**
* Define custom product data fields
*/

add_action('wc_cpdf_init', 'prefix_custom_product_data', 10, 0);
if(!function_exists('prefix_custom_product_data')) :

function prefix_custom_product_data(){

$custom_product_data_fields = array();

$custom_product_data_fields['ceramic_details'] = array(

array(
'tab_name'   =&gt; __('Ceramic Details', 'textdomain'),
),
array(
'id'         =&gt; 'c_height',
'type'          =&gt; 'text',
'label'      =&gt; __('Height', 'textdomain')
),
array(
'id'          =&gt; 'c_width',
'type'          =&gt; 'text',
'label'      =&gt; __('Width', 'textdomain')
),
array(
'id'          =&gt; 'c_depth',
'type'          =&gt; 'text',
'label'      =&gt; __('Depth', 'textdomain')
),
array(
'id'          =&gt; 'c_material',
'type'          =&gt; 'select',
'label'      =&gt; __('Material', 'textdomain'),
'options'    =&gt; array(
'--'                =&gt; '--',
'Earthenware'       =&gt; 'Earthenware',
'White earthenware' =&gt; 'White earthenware',
'Red earthenware'   =&gt; 'Red earthenware',
'Stoneware'         =&gt; 'Stoneware',
'Porcelain'         =&gt; 'Porcelain'
),
),
array(
'id'           =&gt; 'c_ref',
'type'           =&gt; 'text',
'label'       =&gt; __('Ref', 'textdomain')
),
array(
'id'           =&gt; 'c_artist',
'type'           =&gt; 'select',
'label'       =&gt; __('Artist', 'textdomain'),
'options'     =&gt; array(
'--'        =&gt; '--',
'John Doe'  =&gt; 'John Doe',
'Jane Doe'  =&gt; 'Jane Doe'
),
),

);

return $custom_product_data_fields;

}

endif;

توجه داشته باشید که کد فوق فیلد های انگلیسی دارد که شما میتوانید آن ها را فارسی کنید و ترجمه کنید و مشکلی نخواهد بود. حال برای بازگردانی مقادیر که در صفحه محصول نمایش داده شوند کد زیر را باید در ادامه قطعه کد بالا قرار دهید:


/*
* Display product data values underneath the &quot;Add to Cart&quot; button
*/

add_action('woocommerce_single_product_summary', 'prefix_display_ceramic_details', 31);
function prefix_display_ceramic_details(){

global $wc_cpdf;

$height    = $wc_cpdf-&gt;get_value(get_the_ID(), 'c_height');
$width     = $wc_cpdf-&gt;get_value(get_the_ID(), 'c_width');
$depth     = $wc_cpdf-&gt;get_value(get_the_ID(), 'c_depth');
$material  = $wc_cpdf-&gt;get_value(get_the_ID(), 'c_material');
$ref       = $wc_cpdf-&gt;get_value(get_the_ID(), 'c_ref');
$artist    = $wc_cpdf-&gt;get_value(get_the_ID(), 'c_artist');

$output = '
&lt;table border=&quot;0&quot;&gt;';
$output .= '
&lt;tr&gt;
&lt;td&gt;'.__('Height: ', 'textdomain').'&lt;/td&gt;
&lt;td&gt;'.$height.'&lt;/td&gt;
&lt;/tr&gt;

';
$output .= '
&lt;tr&gt;
&lt;td&gt;'.__('Width: ', 'textdomain').'&lt;/td&gt;
&lt;td&gt;'.$width.'&lt;/td&gt;
&lt;/tr&gt;

';
$output .= '
&lt;tr&gt;
&lt;td&gt;'.__('Depth: ', 'textdomain').'&lt;/td&gt;
&lt;td&gt;'.$depth.'&lt;/td&gt;
&lt;/tr&gt;

';
$output .= '
&lt;tr&gt;
&lt;td&gt;'.__('Material: ', 'textdomain').'&lt;/td&gt;
&lt;td&gt;'.$material.'&lt;/td&gt;
&lt;/tr&gt;

';
$output .= '
&lt;tr&gt;
&lt;td&gt;'.__('Ref: ', 'textdomain').'&lt;/td&gt;
&lt;td&gt;'.$ref.'&lt;/td&gt;
&lt;/tr&gt;

';
$output .= '
&lt;tr&gt;
&lt;td&gt;'.__('Artist: ', 'textdomain').'&lt;/td&gt;
&lt;td&gt;'.$artist.'&lt;/td&gt;
&lt;/tr&gt;

';
$output .= '&lt;/table&gt;

';

echo $output;

}

نتایج نمایش اطلاعات محصولات در ووکامرس به صورت زیر خواهد شد:

Raed  دانلود آهنگ جدید محمد رضایی بنام عاشقانه

show information- نمایش اطلاعات محصولات در ووکامرس

روزگارتون زیبا…

دانلود افزونه woocommerce custom product data fields

دانلود
صفحه افزونه

نوشته نمایش اطلاعات بیشتر از محصولات در ووکامرس با woocommerce custom product data fields اولین بار در همیاروردپرس پدیدار شد.