رفتن به مطلب

چطور میشه شورت کد ووکامرس ویرایش کرد؟


ahmad4u

پست های پیشنهاد شده

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


[recent_products]

لینک ما جهت قرار گیری در حلقه



$mid_var = get_post_meta($prd_id, 'dm','true')  {
if(isset($mid_var) && !empty($mid_var)) {   get_post_meta ($prd_id, 'dm','ture'); 
$dz= "https://stat.co".$mid_var; }

کد شورت کد

/**
 * Recent Products shortcode
 *
 * @param array $atts
 * @return string
 */
public static function recent_products( $atts ) {
    global $woocommerce_loop;

    $atts = shortcode_atts( array(
        'per_page'  => '12',
        'columns'   => '4',
        'orderby'   => 'date',
        'order'     => 'desc'
    ), $atts );

    $meta_query = WC()->query->get_meta_query();

    $args = array(
        'post_type'             => 'product',
        'post_status'           => 'publish',
        'ignore_sticky_posts'   => 1,
        'posts_per_page'        => $atts['per_page'],
        'orderby'               => $atts['orderby'],
        'order'                 => $atts['order'],
        'meta_query'            => $meta_query
    );

    ob_start();

    $products = new WP_Query( apply_filters( 'woocommerce_shortcode_products_query', $args, $atts ) );

    $columns = absint( $atts['columns'] );
    $woocommerce_loop['columns'] = $columns;

    if ( $products->have_posts() ) : ?>

        <?php woocommerce_product_loop_start(); ?>

            <?php while ( $products->have_posts() ) : $products->the_post(); ?>

                <?php wc_get_template_part( 'content', 'product' ); ?>

            <?php endwhile; // end of the loop. ?>

        <?php woocommerce_product_loop_end(); ?>

    <?php endif;

    wp_reset_postdata();

    return '<div class="woocommerce columns-' . $columns . '">' . ob_get_clean() . '</div>';
}

 

 

لینک به ارسال

سلام  

دوست عزیز این کد هایی که گذاشتید با توجه به اطلاعاتی که بدست میاره اگر پستی وجود داشته باشه میاد اطلاعات رو میفرسته به صفحه content-product.php  حالا شما میخواهید بجای ارسال به صفحه ذکر شده بفرسته به جای دیگه باید داخل حلقه جای کد 

<?php wc_get_template_part( 'content', 'product' ); ?>

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

  • پسندیدن 1
لینک به ارسال

تشکر از شما

البته ما راه دیگه ای رو رفتیم و دوس داشتیم با یک action یا function بدون دستکاری تو کدهای کار انجام بشه

 

روشی که رفتیم

یک فایل content حاوی کدهای خودمون ساختیم و در کد بالا جایگذاری کردیم

<?php wc_get_template_part( 'contentwoo', 'product' ); ?>
  • پسندیدن 1
لینک به ارسال

لطفا برای ارسال دیدگاه وارد شوید

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



ورود به حساب کاربری
×
×
  • اضافه کردن...