(91) 350-9520 support@omarine.org M-F: 7 AM - 7 PM; Weekends: 9 AM - 5 PM

Lập trình Web: PHP: WordPress: Giới thiệu sản phẩm tới khách hàng

Sau khi xây dựng plugin cho post sản phẩm và trang tùy chọn với các cài đặt cần thiết, chúng ta cần viết khuôn mẫu để trình bày bài viết đặc thù kiểu sản phẩm. Khuôn mẫu mà trình bày một bài viết đơn thông thường là single.php. Nhưng chúng ta đăng bài viết đặc biệt của loại post là my_product và khuôn mẫu dành cho nó có thể là single-my_product.php. WordPress sẽ tìm khuôn mẫu của post tùy biến trước khuôn mẫu thông thường.
Có cái hay là chúng ta đã tùy biến theme và đây là lúc vận dụng theme con tùy biến. Bạn tạo khuôn mẫu single-my_product.php và chép nó vào thư mục theme con. Mặc dù không yêu cầu đối với post đơn, sẽ không mất gì nếu chúng ta biểu diễn vòng lặp để thể hiện vòng lặp WordPress – một yếu tố cơ bản trong WordPress theme:

<?php
get_header(); 

$args = [
    'post_type'      => 'my_product',
    'posts_per_page' => 10,
];
$loop = new WP_Query($args);
while ($loop->have_posts()) {
    $loop->the_post();
    $my_product_stored_meta = get_post_meta( $post->ID );
    ?>
    <div class="wrap">
    <header class="entry-header">
    <?php the_date('F j, Y'); ?>
    <?php
    if (current_user_can('edit_posts'))
        edit_post_link(__('Edit', 'myproduct'), '<span class="edit-link"> &nbsp;', '</span>');
    ?>
    <br />
    <?php
    $title = __(get_the_title(), 'myproduct');
    echo sprintf('<h1 class="entry-title"> %s </h1>', $title);
    ?>
    </header>
    <div class="entry-content">
    <!-- <?php the_content(); ?> -->
    <?php echo __('Price', 'myproduct') . ': '; ?>
    <?php if ( isset ( $my_product_stored_meta['price'] ) ) echo $my_product_stored_meta['price'][0]; ?>
    <?php
    $options = get_option( 'my_product_setting_options' );
    $currency = $options['my_product_setting_field_currency'];
    switch ( $currency ) {
        case 'usd':
            echo 'usd';
            break;
        case 'vnd':
            echo 'đ';
            break;
    }

    ?>
    <br />

    <?php echo __('Shipping', 'myproduct') . ': '; ?>
    <?php if ( isset ( $my_product_stored_meta['shipping'] ) ) echo $my_product_stored_meta['shipping'][0]; ?>
    <br />

    <?php echo __('Options', 'myproduct') . ': '; ?>
    <?php if ( isset ( $my_product_stored_meta['stock-checkbox'] ) &&
        $my_product_stored_meta['stock-checkbox'][0] == 'yes' ) $opt_list[] = __('Enable stock management', 'myproduct'); ?>
    <?php if ( isset ( $my_product_stored_meta['reviews-checkbox'] ) &&
        $my_product_stored_meta['reviews-checkbox'][0] == 'yes' ) $opt_list[] = __('Enable reviews', 'myproduct'); ?>
    <?php echo join( ', ', $opt_list ); ?>
    <?php echo '<br />' ?>

    <?php echo __('Size', 'myproduct') . ': '; ?>
    <?php if ( isset ( $my_product_stored_meta['size-radio'] ) && $my_product_stored_meta['size-radio'][0] == 'big-radio' ) echo __('Big', 'myproduct'); ?>
    <?php if ( isset ( $my_product_stored_meta['size-radio'] ) && $my_product_stored_meta['size-radio'][0] == 'small-radio' ) echo __('Small', 'myproduct'); ?>
    <br />

    <?php echo __('Product type', 'myproduct') . ': '; ?>
    <?php if ( isset ( $my_product_stored_meta['product-type'] ) &&
        $my_product_stored_meta['product-type'][0] == 'downloadable' )
            echo __('Downloadable', 'myproduct'); ?>
    <?php if ( isset ( $my_product_stored_meta['product-type'] ) &&
        $my_product_stored_meta['product-type'][0] == 'physical-inventory' )
            echo __('Physical inventory', 'myproduct'); ?>
    <br />

    <?php if ( isset ( $my_product_stored_meta['product-description'] ) ) ?> <pre> <?php echo $my_product_stored_meta['product-description'][0]; ?> </pre>

    <?php echo __('Color', 'myproduct') . ': '; ?>
    <?php if ( isset ( $my_product_stored_meta['meta-color'] ) ) ?>
        <span style="color: <?php echo $my_product_stored_meta['meta-color'][0]?>;"> <?php echo $my_product_stored_meta['meta-color'][0]?> </span>
    <br />
    <?php if ( isset ( $my_product_stored_meta['meta-image'] ) ) ?>
        <img src=<?php echo $my_product_stored_meta['meta-image'][0]; ?> />

    </div>
    </div>
    <?php
}
get_footer();

Bộ phận tiêu đề hiện thị ngày xuất bản, và nếu người sử dụng có năng lực “edit_posts” (đó là, các Biên tập viên và cao hơn), một link “Edit” xuất hiện bên phải ngày tháng. Dòng bên dưới là title của bài.
Biến $my_product_stored_meta lấy dữ liệu meta của bài viết, từ đó khuôn mẫu trình bày các mục trong phần nội dung. $currency lấy kiểu tiền tệ đã được đặt trong trang tùy chọn để hiển thị đơn vị tiền tệ thích hợp. Các mục sau đó chỉ là các kết xuất thông thường.

Advertisements

Gửi phản hồi

%d bloggers like this: