Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在woocommerce中设置绕过产品详细信息页面的外部产品?_Php_Wordpress_Woocommerce - Fatal编程技术网

Php 如何在woocommerce中设置绕过产品详细信息页面的外部产品?

Php 如何在woocommerce中设置绕过产品详细信息页面的外部产品?,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我想用外部产品建立一个woocommerce网站。我想在单击产品时将客户带到产品的主网站(外部链接),而不向他们显示产品详细信息页面 通过单击产品缩略图并在“新建”选项卡中打开外部链接,绕过“产品详细信息”页面 我该怎么做 这就是代码的工作原理,我覆盖默认的循环产品链接,并将其与编辑名为“外部URL”的产品时出现在“常规”选项卡下的我自己的自定义字段相关联。当输入外部URL时,链接会将用户带到另一个网站,当没有外部URL时,它会将用户链接到详细信息页面。我从这篇关于创建定制产品字段的伟大文章中获

我想用外部产品建立一个woocommerce网站。我想在单击产品时将客户带到产品的主网站(外部链接),而不向他们显示产品详细信息页面

通过单击产品缩略图并在“新建”选项卡中打开外部链接,绕过“产品详细信息”页面


我该怎么做

这就是代码的工作原理,我覆盖默认的循环产品链接,并将其与编辑名为“外部URL”的产品时出现在“常规”选项卡下的我自己的自定义字段相关联。当输入外部URL时,链接会将用户带到另一个网站,当没有外部URL时,它会将用户链接到详细信息页面。我从这篇关于创建定制产品字段的伟大文章中获得了一些代码

将此代码粘贴到functions.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="' . esc_url( get_the_permalink() ) . '" class="woocommerce-LoopProduct-link woocommerce-loop-product__link">';
    else
        echo '<a href="' . esc_url( $product_url ) . '" class="woocommerce-LoopProduct-link woocommerce-loop-product__link">';
}
remove_action('woocommerce_-before_-shop_-loop_-item','woocommerce_-template_-loop_-product_-link_-open',10);
添加操作('woocommerce\u在商店之前\u循环\u项目','modify\u woocommerce\u template\u loop\u product\u link\u open',10);
//显示字段
添加操作(“woocommerce\u product\u options\u general\u product\u data”、“woo\u add\u custom\u general\u fields”);
//保存字段
添加操作('woo商业\流程\产品\元','woo \添加\自定义\常规\字段\保存');
函数woo_添加_自定义_常规_字段(){
全球$woocmerce,$post;
回声';
woocommerce_wp_text_input(
数组(
'id'=>'\u外部\u url',
'label'=>\('External URL','woocommerce'),
'占位符'=>'http://',
'desc_tip'=>'true',
“description'=>”(在此处输入外部URL),“woocommerce”)
)
);
回声';
}
函数woo\u添加\自定义\常规\字段\保存($post\u id){
$woocommerce_text_field=$_POST['''u external_url'];
如果(!空($woocmerce\u text\u field))
更新发布元数据($post\u id,''u external\u url',esc\u attr($woocommerce\u text\u field));
}
函数修改\商业\模板\循环\产品\链接\打开(){
$product_url=get_post_meta(get_ID(),'u external_url',true);
if(空($product_url))
回声';
其他的
回声';
}

到目前为止你都尝试了什么?我不知道怎么做!!你能给我指引的任何方向都会很有帮助。这正是我想要的。感谢AndrewGlad,我本可以帮助你:)如果你想改进答案,你可以添加一个额外的检查来验证是否在文本框中输入了URL。目前,它将接受任何字符串作为输入。是的,当然,让我看看。