Я пытаюсь изменить URL для редактирования продукта, созданный с помощью этой функции плагинов:
function dokan_edit_product_url( $product ) {
if ( ! $product instanceof WC_Product ) {
$product = wc_get_product( $product );
}
if ( ! $product ) {
return false;
}
if ( 'publish' === $product->get_status() ) {
$url = trailingslashit( get_permalink( $product->get_id() ) ) . 'edit/';
} else {
$url = add_query_arg(
[
'product_id' => $product->get_id(),
'action' => 'edit',
],
dokan_get_navigation_url( 'products' )
);
}
return apply_filters( 'dokan_get_edit_product_url', $url, $product );
}
Вы можете видеть, что у него есть apply_filters
. Поэтому я пытаюсь создать фильтр для изменения URL-адреса следующим образом: example.com/edit-product/product-id
add_filter( 'dokan_get_edit_product_url', function() {
// I need to get the PRODUCT ID here somehow.
$url = 'example.com/dashboard/edit-product' . $product_id;
return $url;
} );
Как я могу получить идентификатор продукта в своем фильтре? Мне нужно взять идентификатор продукта и прикрепить его к: example.com/dashboard/edit-product/
+ product_id
Вот одна попытка:
add_filter( 'dokan_get_edit_product_url', function( $product ) {
$product = wc_get_product( $product );
var_dump($product);
return $url;
} );
Результат:
/app/filters.php:175:boolean false