wc_get_endpoint_url( string $endpoint, string $value = '', string $permalink = '' )
Get endpoint URL.
Description Description
Gets the URL for an endpoint, which varies depending on permalink settings.
Parameters Parameters
- $endpoint
-
(Required) Endpoint slug.
- $value
-
(Optional) Query param value.
Default value: ''
- $permalink
-
(Optional) Permalink.
Default value: ''
Return Return
(string)
Source Source
File: includes/wc-page-functions.php
function wc_get_endpoint_url( $endpoint, $value = '', $permalink = '' ) {
if ( ! $permalink ) {
$permalink = get_permalink();
}
// Map endpoint to options.
$query_vars = WC()->query->get_query_vars();
$endpoint = ! empty( $query_vars[ $endpoint ] ) ? $query_vars[ $endpoint ] : $endpoint;
$value = ( get_option( 'woocommerce_myaccount_edit_address_endpoint', 'edit-address' ) === $endpoint ) ? wc_edit_address_i18n( $value ) : $value;
if ( get_option( 'permalink_structure' ) ) {
if ( strstr( $permalink, '?' ) ) {
$query_string = '?' . wp_parse_url( $permalink, PHP_URL_QUERY );
$permalink = current( explode( '?', $permalink ) );
} else {
$query_string = '';
}
$url = trailingslashit( $permalink );
if ( $value ) {
$url .= trailingslashit( $endpoint ) . user_trailingslashit( $value );
} else {
$url .= user_trailingslashit( $endpoint );
}
$url .= $query_string;
} else {
$url = add_query_arg( $endpoint, $value, $permalink );
}
return apply_filters( 'woocommerce_get_endpoint_url', $url, $endpoint, $value, $permalink );
}