نگاهی تخصصی تر به افزونه easy digital downlods

rocki3oy

کاربر عضو
با سلام خدمت شما دوستان عزیز.

من می خوام از افزونه edd برای فروش محصولات استفاده کنم و یک مقدار راهنمایی و کمک از شما دوستان عزیز می خوام.

برای ارسال مطلب توسط edd نمایش آن در ادامه مطلب همان طور که می دونید باید فایلی با نام single-download.php درست بشه.

خوب من این فایل رو درست کردم و آیکون خرید را در قسمتی از پوسته در ادامه مطلب در نظر گرفتم ولی آیکون خرید در انتهای مطلب به رنگ پیشفرض توسط edd قرار داده میشه.

می خواستم بدونم چطور این مورد باید حذف بشه.

سوال دومم اینه که چطور می تونم قسمت نظرات را برای افزونه edd فعال کنم.

چون من کد نظرات رو در فایل single-download.php قرار میدم ولی مزنه نظرات غیر فعال.

لطفا کمکم کنید.

با تشکر.

 

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
بله درسته شما برای ادامه مطلب نیاز به single-download.php و برای صفحه همه محصولات هم نیاز به arshive-download.php داری .

برای قسمت نظرات شما باید اول کد زیر رو تو فانکشن قالب بریزید تا قابلیت نظر دادن برای این افزونه فعال بشه :


کد:
// Easy Digital Downloads Function - Start Code 
function modify_edd_product_supports($supports) {
    $supports[] = 'comments';
    return $supports;    
}
add_filter('edd_download_supports', 'modify_edd_product_supports');
خب حالا به همون محصولت برو و محصول رو ویرایش کن و از قسمت بالای صفحه سمت چپ >> تنظیمات صفحه : قسمت نظرات اضافه شده تیکش رو بزن .

البته کد های زیر رو هم توصیه میکنم تو فانکشن بریزی تا هم تگ ای دی دی از هدرت حذف بشه و هم بتونه بجای /downloads که میره تو همون arshive-download.php مسیر دلخواهت رو بزاری . تو کد زیر روی shop هستش .


کد:
remove_action( 'wp_head', 'edd_version_in_header' );
define('EDD_SLUG', 'shop');
برای نمایش تعداد فروش هم کد زیر رو داخل حلقه بزار :


کد:
echo '<div>تعداد فروش شده :</div>';
$count  = wp_count_posts( 'edd_payment' );
$total_items = $count->{'publish'};
echo  $total_items;
اون قسمت اضافه به خرید رو نفهمیدم توضیح میدی ؟

بهر حال کد زیر قیمت ها + دکمه خرید رو نشون میده :


کد:
    <?php echo edd_get_purchase_link( array( 'download_id' => get_the_ID(), 'text' => 'اضافه به سبد خرید' ) ); ?>
کد زیر هم متنی که توی ویرایش گر پر کردید برای توضیحات محصول :


کد:
            <p><?php echo apply_filters( 'edd_downloads_content', get_post_field( 'post_content', get_the_ID() ) ); ?></p>
کد زیر هم برای آرشیو خوبه که اگه محصول چند قیمتی بود قیمت پایه رو نشون میده :


کد:
if ( edd_has_variable_prices( get_the_ID() ) )
{
echo '<a class="button blue edd-submit edd-has-js" href="'.get_permalink().'">شروع از ';
echo edd_price( get_the_ID() );
echo '</a>';
}

else
{
echo edd_price($post->ID);
echo '<br/>'.edd_get_purchase_link( array( 'id' => get_the_ID(), 'price' =>false, 'text' => 'افزودن به سبد خرید' )).'</div>';
}
کدها باید داخل حلقه باشن .

البته منم مثل تو با edd یه شاپ خوب راه انداخته بودم اما در کنارش افزونه advanced custom fileds رو هم استفاده میکردم واسه زمینه های دلخواه پیشرفته محصول (فیلدهای اضافی مشخصات محصول)

 
آخرین ویرایش توسط مدیر:
  • Like
واکنش‌ها[ی پسندها]: ghiasvand

rocki3oy

کاربر عضو
عزیز اگه بگم عالی بود شاید کم گفتم.خیلی عالی و کامل بود دست شما درد نکنه.

یه مورد دیگه ای بود.وجود دکمه خرید انتهای هر متن که من می خوام حذف کنم ولی در پیکربندی این افزونه چیزی در این مورد وجود نداره.

من عکسی از اون قسمتی که ادامه متن نمایش داده میشه قرار دادن.

می خوام این دکمه نمایش نده.



تشکر دوباره به خاطر مطالب کاملتون.

 

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
خواهش میکنم عزیز . نباید نشون بده . میشه بپرسم از چه کدی برای حلقه تون استفاده کردین ؟

فک کنم شما از the_content استفاده کردی درسته ؟

بجاش باید از


کد:
[COLOR=#000000]
            <p>[COLOR=#0000BB]<?php [/COLOR][COLOR=#007700]echo [/COLOR][COLOR=#0000BB]apply_filters[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#DD0000]'edd_downloads_content'[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]get_post_field[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#DD0000]'post_content'[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]get_the_ID[/COLOR][COLOR=#007700]() ) ); [/COLOR][COLOR=#0000BB]?>[/COLOR]</p>[/COLOR]
استفاده کنی .

 
آخرین ویرایش توسط مدیر:

rocki3oy

کاربر عضو
بله دوست عزیز حق با شما بود بی دقتی از خودم بود در بالا متذکر شدید ولی توجه نکردم.

اگر از the_content استفاده بشه قیمت رو انتهای مطلب نمایش میده.

با تشکر

 

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
راستی برای نمایش دسته بندیش نمیتونی از the_category استفاده کنی . باید بجاش از کد زیر استفاده کنی


کد:
<?php echo get_the_term_list( $post->ID, 'download_category' , ' ' , ' , ' , '' ); ?>
کد جدید ترین محصولات که هرجای سایتت میتونی استفاده کنی :


کد:
<div class="Hannan37Bas Hannan7 oHannan43 Hannan3">
      <h3><span class="b6 sss b Hannan30"></span>جدیدترین محصولات</h3>
    </div>
    <div class="Hannan37Blok Hannan5 Hannan5sizTepe Hannan6">
    <?php echo  '<div class="hannan_class120"><ul>';

        $args = array(
    'post_type' => 'download',
    'posts_per_page' => 6,);

$my_query = new WP_Query( $args );
while ($my_query->have_posts()):
$my_query->the_post();
$do_not_duplicate = $post->ID;  

        echo '<li><a href="'.get_permalink().'"><span class="Hannan13Alan">';

        if ( has_post_thumbnail()) : 

        the_post_thumbnail( 'Hannan37', array('class' => '', 'alt' => ''.the_title_attribute('echo=0').'', 'title' => ''.the_title_attribute('echo=0').'' )); 

    elseif (get_post_meta($post->ID, 'resim', true) != '') : 

        echo '<img src="'.get_post_meta($post->ID, 'resim', true).'" alt="'.the_title_attribute('echo=0').'" title="'.the_title_attribute('echo=0').'" width="83" height="92" />'; else : echo '<img src="'.get_bloginfo('template_url').'/images/nothumb.jpg" width="83" height="92" alt="'.the_title_attribute('echo=0').'" title="'.the_title_attribute('echo=0').'" />';

    endif; 


 echo '</span><span class="filmAdi">'; if (strlen($post->post_title) > 26) { echo mb_substr(the_title($before = '', $after = '', FALSE), 0, 26) . '...'; } else {the_title(); } echo '</span></a></li>

        ';



endwhile;



    echo '</ul></div><div class="Hannan9"></div></div>'."\n";
?>
کد پر بازدیدترین محصولات که اینم هرجای سایتت میتونی استفاده کنی ولی نیاز به افزونه wp postviews داره :


کد:
<div class="Hannan37Bas Hannan7 oHannan43 Hannan3">
      <h3><span class="b6 sss b Hannan30"></span>پربازدید ترین محصولات</h3>
    </div>
    <div class="Hannan37Blok Hannan5 Hannan5sizTepe Hannan6">
    <?php echo  '<div class="hannan_class120"><ul>';


$args = array(
    'post_type' => 'download',
    'posts_per_page' => 6,
    'orderby' => 'meta_value_num',
    'meta_key' => 'views',
    'order' => 'DESC',

);
$my_query = new WP_Query( $args );
while ($my_query->have_posts()):
$my_query->the_post();
$do_not_duplicate = $post->ID; 
$views = get_post_meta($post->ID, 'views', true); 

        echo '<li><a href="'.get_permalink().'"><span class="Hannan13Alan">';

        if ( has_post_thumbnail()) : 

        the_post_thumbnail( 'Hannan37', array('class' => '', 'alt' => ''.the_title_attribute('echo=0').'', 'title' => ''.the_title_attribute('echo=0').'' )); 

    elseif (get_post_meta($post->ID, 'resim', true) != '') : 

        echo '<img src="'.get_post_meta($post->ID, 'resim', true).'" alt="'.the_title_attribute('echo=0').'" title="'.the_title_attribute('echo=0').'" width="83" height="92" />'; else : echo '<img src="'.get_bloginfo('template_url').'/images/nothumb.jpg" width="83" height="92" alt="'.the_title_attribute('echo=0').'" title="'.the_title_attribute('echo=0').'" />';

    endif; 


 echo '</span><span class="filmAdi">'; if (strlen($post->post_title) > 26) { echo mb_substr(the_title($before = '', $after = '', FALSE), 0, 26) . '...'; } else {the_title(); } echo '</span></a></li>

        ';



endwhile;



    echo '</ul></div><div class="Hannan9"></div></div>'."\n";
?>
اینم حلقه مربوط به محصولات مشابه بر اساس دسته بندی ها :


کد:
  <?php

        $custom_taxterms = wp_get_object_terms( $post->ID,'download_category', array('fields' => 'ids') );
        $args = array(
        'post_type' => 'download',
        'post_status' => 'publish',
        'posts_per_page' => 4, 
        'orderby' => 'rand',
        'tax_query' => array(
            array(
                'taxonomy' => 'download_category',
                'field' => 'id',
                'terms' => $custom_taxterms
            )
        ),
        'post__not_in' => array ($post->ID),
        );
        $related_items = new WP_Query( $args );
        if ($related_items->have_posts()) :
        while ( $related_items->have_posts() ) : $related_items->the_post();

// code marboot be mahsoolat mese onvano axo gheymato ....        


        endwhile;
        endif;
        wp_reset_postdata();
        ?>
خود حلقه آماده هست فقط داخل حلقه خالیه که خودت میتونی پرش کنی. فک کنم اگه category رو تبدیل به tag کنی محصولات مشابه رو برحسب برچسب نشون بده .

استفاده از افزونه advanced custom fileds رو هم برای حرفه ای شدن فروشگاهت مد نظر قرار بده .

موفق باشی

 

rocki3oy

کاربر عضو
واقعا عالی عالی عالی.

می خواستم دسته بندی رو بپرسم گفتم دیگه پرویی نکنم.

دست شما درد نکنه.

یه مورد دیگه بود اینه که یک استایل css برای جداول Edd ندارید.

همان طور که خودتون می دونید بعد از خرید مواردی که نمایش میده چپ چین هستند هر چی من استایل رو می نویسم هیچ تاثیری نداره.

آیا شما استایل پیشفرض و مرتبی دارید.

بازم ممنونم بابت اطلاعات کاملتون.

 

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
والا همونطور که تو دمو از سایت خودم گذاشتم منم فقط صفحه single رو درست کردم و وقت نکردم بقیه رو ادامه بدم و متاسفانه استایل پیشفرضی ندارم ولی همونطور که توی همون سینگلم مشخصه استایلهایی که تغییر دادم اعمال شدند و تغییر کردند .

من استایلهامو آخر استایل قالبم گذاشتم و آخرشون هم از !important استفاده کردم تا سایت این استایلهای من رو به استایلهای خود edd ارجحیت بده .

 

rocki3oy

کاربر عضو
برای نمایش برچسب مطالب می تونید از کد زیر در حلقه استفاده کنیم.


کد:
<?php echo get_the_term_list( $post->ID, 'download_tag', 'برچسب ها: ', ', ', '' ); ?>
 

rocki3oy

کاربر عضو
دوست عزیز برای قالب دسته بندی و تگ ها باید چی کار کرد الان به طور مثال من روی دسته بندی محصول کلیک می کنم صفحه اصلی نمایش میده آیا باید از category-download.php استفاده کنم؟!

البته درست کردم بازم صفحه اول رو نشون داد.

 

rocki3oy

کاربر عضو
با سلام .

دوستان عزیز راه حلی برای نمایش قسمت قالب دسته بندی و تگ های افزونه edd ندارید.

با تشکر.

 

rocki3oy

کاربر عضو
دوست عزیز چیزی که من متوجه شدم برای دسته بندی از همون فایل index.php استفاده می کنه.

طوری که اگر تو فایل index.php از حلقه با post_type=download استفاده کنی مشکل حل میشه.

البته من موقت اینو تست کردم جواب داد گفتم اینجا بگم شاید به درد شما هم خورد.

 

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
اما من قبلا از arshive-download.php استفاده میکردم خوب کار میکرد ولی تو نمیدونم تو ورژن جدید edd این مشکل پیش اومده یا وردپرس 4 . چون قبلا کار میکرد و حتی قالب اون صفحه رو هم طراحی کرده بودم .

 

rocki3oy

کاربر عضو
دوست عزیز چیزی که من متوجه شدم برای دسته بندی از همون فایل index.php استفاده می کنه.طوری که اگر تو فایل index.php از حلقه با post_type=download استفاده کنی مشکل حل میشه.

البته من موقت اینو تست کردم جواب داد گفتم اینجا بگم شاید به درد شما هم خورد.
شاید در نسخه جدید edd این مشکل به وجود اومده.

ضمنا جمله بالارو اصلاح می کنم.

یک فایل index.php درست کنید.

و از حلقه بدون post_type=download استفاده کنید.یعنی به صورت زیر:

به طور مثال:


کد:
<?php if(have_posts()): ?><?php while(have_posts()):the_post(); ?>

عنوان محصول:<?php the_title(); ?>

<?php endwhile; else: ?><?php endif; ?>
با اینکار محصولات صفحه اول نمایش داده نخواهد شد و باید یک برگه ای ایجاد کنید که آخرین محصولات edd در آن نمایش داده شود سپس در قسمت شخصی سازی برگه آخرین محصولات را انتخاب کرده که در صفحه ی اصلی سایت آخرین محصولات نمایش داده شود.

با این کار دسته بندی و حتی لینک های تگ های افزونه Edd به درستی کار خواهد کرد.

امیدوارم تونسته باشم منظورم رو برسونم.

 

befermatooo

تازه وارد
سلام دوستان . خسته نباشید

ممنون از کظالبتون اما من واقعا چیزی دستگیرم نشد

چچون بلد نیستم کجا این کد ها را کپی کنمو اینکه تو حلقه بزارین یعنی چی ؟ دی

خواهش میکنم راهنمایی کنید

وقتی مطلبی رو میفرستم به صفحه اول نمیره . مشکل من فعلا همینه !

قالب من هم صحیفه هست و نمیتونم فعلا تغییرش بدم

- - - Updated - - -

یعنی کسی مشکل منو نداره ؟

 

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
دوست عزیز ، شما وقتی تاحالا یبار یه کوئری کار نکردی یا نمیدونی حلقه چیه کسی نمیتونه کمک کنه مگر اینکه هزینه کنی بدی یکی از دوستان برات ردیف کنه .

 

befermatooo

تازه وارد
دوست عزیز ، شما وقتی تاحالا یبار یه کوئری کار نکردی یا نمیدونی حلقه چیه کسی نمیتونه کمک کنه مگر اینکه هزینه کنی بدی یکی از دوستان برات ردیف کنه .
سلام

منظورت اینکه کوئری رو یاد بگیرم میتونم با این کد ها کار کنم ؟ آموزش مقدماتی کفایت میکنه برای کار من که کپی کردن کد ها و ... هست ؟

 

rocki3oy

کاربر عضو
با سلام و احترام.

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


کد:
$edd_price = get_post_meta($post->ID, 'edd_price',true);
یا


کد:
<?php edd_price($post->ID); ?>
حالا من از چه کدی استفاده کنم که قیمت پیش فرض نمایش داده بشه یا حداقل قیمت بیشتر نمایش داده یشه.

attachment.php


ممنونم بابت کمکتون.

You must be registered for see images attach


 

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
@

خدمت شما .

این کد اگه محصول چند قیمتی باشه همه رو نشون میده :


کد:
if ( edd_has_variable_prices( get_the_ID() ) ) {
$prices = edd_get_variable_prices( get_the_ID() );
if( $prices ) {
    foreach( $prices as $price_id => $price ) {
        echo $price['name'].'-';
        echo $price['amount'].'<br>';
    }
}
}
این کد هم اولین محصول رو نشون میده (طبق عکس شما میشه محصول قیمت اول) : که البته اگه اون 0 رو ببرید بالا محصول بالاتر رو نشون میده مثلا [1] محصول 2 رو نشون میده .


کد:
if ( edd_has_variable_prices( get_the_ID() ) ) {

$amount = array();
$names = array();

$prices = edd_get_variable_prices( get_the_ID() );
if( $prices ) {
    foreach( $prices as $price_id => $price ) {
        $names[] = $price['name'];
        $amount[] = $price['amount'];
    }
}


echo $names[0].'-';
echo $amount[0];

}
این کد هم آخرین محصول رو نشون میده (طبق عکس شما میشه محصول قیمت دوم) :


کد:
if ( edd_has_variable_prices( get_the_ID() ) ) {

$amount = array();
$names = array();

$prices = edd_get_variable_prices( get_the_ID() );
if( $prices ) {
    foreach( $prices as $price_id => $price ) {
        $names[] = $price['name'];
        $amount[] = $price['amount'];
    }
}


echo array_pop($names).'-';
echo array_pop($amount);

}
این کد هم محصول گرون تر رو نشون میده :


کد:
if ( edd_has_variable_prices( get_the_ID() ) ) {


$max = 0;
$maxname = "";
$prices = edd_get_variable_prices( get_the_ID() );
if( $prices ) {
foreach( $prices as $price_id => $price ) {


if ($price['amount']>=$max) {
$max = $price['amount'];
$maxname = $price['name'];
}



}
}


echo $maxname.'-';
echo $max;

}
 
آخرین ویرایش توسط مدیر:
بالا