wordpress - Wordpress Front Product Edit 链接更改为 wp-admin 编辑产品(来自 wc-vendor 插件的编辑按钮)
问题描述
我正在使用 wc-vendor pro 插件,它为供应商制作了一个简单的仪表板来处理产品 - 可以从那里添加、编辑和删除产品。但要求是:点击编辑时,它应该进入 wp-admin 产品帖子并编辑相同的产品。
我有这个过滤器来更改 URL,但我不知道如何获得相同的产品 ID?有什么帮助吗?
add_filter( 'wcv_product_edit_link', 'link_actions_edit', 10, 3);
function link_actions_edit($template_url, $product_id) {
$template_url = '/wp-admin/post.php?php='. $product_id.'&action=edit';
return $template_url;
}
这是插件代码。
/**
* Get the product edit link depending on several different variables
*
* @since 1.4.0
* @access public
* @return array $product_edit_link
*/
public static function get_product_edit_link( $product_id = null, $default = false ){
$default_template = get_option( 'wcvendors_product_form_template' );
$default_template = 'edit' === $default_template ? 'standard' : $default_template;
$default_link = ( 'standard' === $default_template ) ? 'product/edit/' : 'product/' . $default_template . '/edit/';
// Only load a custom template if the product has one
if ( $product_id ){
$template = get_post_meta( $product_id, '_wcv_product_form_template', true );
$template = $template === 'edit' || $template === 'standard' ? '' : $template;
if ( !empty( $template ) ) $template = $template . '/';
}
if ( $default ) $template = $default_link;
$template_url = ( empty( $template ) ) ? $default_link : 'product/' . $template . 'edit/';
return apply_filters( 'wcv_product_edit_link', WCVendors_Pro_Dashboard::get_dashboard_page_url( $template_url . $product_id ) );
}
解决方案
您可以在过滤器函数中传递错误的参数。
按照此更改您的代码:
function link_actions_edit($param) {
$home_url = get_home_url();
$remove_http = str_replace('http://', '', $param);
$split_url = explode('/', $remove_http);
$get_product_id = $split_url[4];
$product_edit_url = $home_url . '/wp-admin/post.php?post='. $get_product_id.'&action=edit';
return $product_edit_url;
}
推荐阅读
- sql - 为什么这不能捕获存储过程中的错误?
- unity3d - 无服务器推送通知
- php - 使用节点的字符串表示访问 stdClass 对象上的嵌套属性
- docker - 使用 mono repo 在 Docker 容器中包含 Go 依赖项
- angular - 为什么 ngx-bootstrap 未应用于我已分类的按钮
- r - keras中用于混合数据输入(图像,csv)的生成器函数 - R
- java - 如何在此 ArrayList 中搜索 null,然后将其替换为另一个 Object?
- c - 我需要正确读取行尾。空白区域问题
- php - if (!isset($_SESSION['adminid'])) { 停止页面加载
- firebase - Firebase - 防止机器人大规模注册