วิธีการตั้งค่าผลิตภัณฑ์ภายนอกใน woocommerce ไปยังหน้ารายละเอียดผลิตภัณฑ์นั้นจะถูกข้ามไปได้อย่างไร

ฉันต้องการตั้งค่าเว็บไซต์ woocommerce ด้วยผลิตภัณฑ์ภายนอก ฉันต้องการนำลูกค้าไปที่เว็บไซต์หลักของผลิตภัณฑ์ (ลิงก์ภายนอก) โดยคลิกผลิตภัณฑ์โดยไม่แสดงหน้ารายละเอียดสินค้า

ข้ามหน้ารายละเอียดสินค้าโดยคลิกภาพขนาดย่อของผลิตภัณฑ์แล้วเปิดลิงก์ภายนอกในแท็บใหม่

ฉันจะทำเช่นนี้ได้อย่างไร?


person Damon    schedule 14.11.2017    source แหล่งที่มา
comment
สิ่งที่คุณได้ลองจนถึงตอนนี้?   -  person Sulthan Allaudeen    schedule 14.11.2017
comment
ฉันไม่รู้ว่าต้องทำอย่างไร !! ทิศทางใดที่คุณสามารถแนะนำฉันได้จะเป็นประโยชน์   -  person Damon    schedule 14.11.2017


คำตอบ (1)


นี่คือวิธีการทำงานของโค้ดนี้ ฉันแทนที่ลิงก์ผลิตภัณฑ์ลูปเริ่มต้นและเชื่อมโยงกับฟิลด์ที่กำหนดเองของฉันเองซึ่งปรากฏใต้แท็บทั่วไปเมื่อคุณแก้ไขผลิตภัณฑ์ที่เรียกว่า "URL ภายนอก" เมื่อป้อน URL ภายนอก ลิงก์จะนำผู้ใช้ไปยังเว็บไซต์อื่น และเมื่อไม่มี URL ภายนอก ลิงก์จะเชื่อมโยงผู้ใช้ไปยังหน้ารายละเอียด ฉันนำโค้ดนี้บางส่วนมาจากบทความ ดีๆ เกี่ยวกับการสร้างแบบกำหนดเอง สาขาผลิตภัณฑ์

วางโค้ดนี้ลงในไฟล์ function.php ของคุณ

remove_action( 'woocommerce_before_shop_loop_item', 'woocommerce_template_loop_product_link_open', 10 );
add_action( 'woocommerce_before_shop_loop_item', 'modify_woocommerce_template_loop_product_link_open', 10 );

// Display Fields
add_action( 'woocommerce_product_options_general_product_data', 'woo_add_custom_general_fields' );

// Save Fields
add_action( 'woocommerce_process_product_meta', 'woo_add_custom_general_fields_save' );

function woo_add_custom_general_fields() {
    global $woocommerce, $post;

    echo '<div class="options_group">';

    woocommerce_wp_text_input( 
        array( 
            'id'          => '_external_url', 
            'label'       => __( 'External URL', 'woocommerce' ), 
            'placeholder' => 'http://',
            'desc_tip'    => 'true',
            'description' => __( 'Enter the external URL here.', 'woocommerce' ) 
        )
    );

    echo '</div>';
}

function woo_add_custom_general_fields_save( $post_id ){
    $woocommerce_text_field = $_POST['_external_url'];

    if( !empty( $woocommerce_text_field ) )
        update_post_meta( $post_id, '_external_url', esc_attr( $woocommerce_text_field ) );

}

function modify_woocommerce_template_loop_product_link_open() {
    $product_url =  get_post_meta( get_the_ID(), '_external_url', true );

    if( empty( $product_url) )
        echo '<a href="/th' . esc_url( get_the_permalink() ) . '" class="woocommerce-LoopProduct-link woocommerce-loop-product__link">';
    else
        echo '<a href="/th' . esc_url( $product_url ) . '" class="woocommerce-LoopProduct-link woocommerce-loop-product__link">';
}
person Andrew Schultz    schedule 14.11.2017
comment
สิ่งที่ฉันกำลังมองหา ขอบคุณแอนดรูว์ - person Damon; 14.11.2017
comment
ดีใจที่สามารถช่วยได้ :) หากคุณต้องการปรับปรุงคำตอบ คุณสามารถเพิ่มการตรวจสอบเพิ่มเติมเพื่อตรวจสอบว่ามีการป้อน URL ลงในกล่องข้อความหรือไม่ ขณะนี้จะยอมรับสตริงใด ๆ เป็นอินพุต - person Andrew Schultz; 14.11.2017
comment
ใช่แล้ว ให้ฉันตรวจสอบสิ่งนั้นด้วย - person Damon; 14.11.2017