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