Skip to content

Instantly share code, notes, and snippets.

View MjHead's full-sized avatar

Andrew Shevchenko MjHead

  • Crocoblock
  • Ukraine
View GitHub Profile
@MjHead
MjHead / set-context-for-product.php
Created June 14, 2024 09:57
JetEngine. Timber/Twig listings. Set Post context for WC Product Query
<?php
add_filter( 'jet-engine/twig-views/current-context', function( $context, $object ) {
if ( is_a( $object, 'WC_Product' ) ) {
$object_factory = new \Jet_Engine\Timber_Views\Object_Factory();
$context['post'] = $object_factory->get_post( get_post( $object->get_id() ) );
}
return $context;
@MjHead
MjHead / init-jet-plugins-scripts.php
Created March 8, 2024 15:56
JetFormBuilder. Init JetPlugins scripts on Bricks AJAX Popup
<?php
add_action( 'wp_footer', function() {
?>
<script type="text/javascript">
document.addEventListener( 'bricks/ajax/popup/loaded', (event) => {
window.JetPlugins.init( jQuery( event.detail.popupElement ) )
});
</script>
<?php
@MjHead
MjHead / jetformbuilder-uid-to-request.php
Created February 2, 2024 11:04
JetFormBuilder. Add custom unique ID to request.
<?php
add_action( 'jet-form-builder/custom-action/iterate-submissions', function( $request, $action_handler ) {
$uid = get_option( '_my_uid', false );
if ( ! $uid ) {
$uid = 1;
}
jet_fb_context()->update_request( $uid, '_uid' );
$uid++;
@MjHead
MjHead / jet-angine-appointments-query.sql
Created January 27, 2024 15:55
JetEngine. SQL query to get appointments with service name and service category name. Replace product_cat with your actual taxonomy slug
SELECT app.*, posts.post_title AS service_name, terms.name AS service_category
FROM {prefix}jet_appointments AS app
INNER JOIN {prefix}posts AS posts ON posts.ID = app.service
INNER JOIN {prefix}term_relationships AS terms_rel ON posts.ID = terms_rel.object_id
INNER JOIN {prefix}term_taxonomy AS term_tax ON terms_rel.term_taxonomy_id = term_tax.term_taxonomy_id
INNER JOIN {prefix}terms AS terms ON term_tax.term_id = terms.term_id
WHERE term_tax.taxonomy = 'product_cat'
@MjHead
MjHead / jet-booking-add-cpt.php
Created January 17, 2024 16:11
JetBooking. Add one more CPT as booking instance
<?php
// Replace additional-props with your CPT slug
DEFINE( 'BOOKING_ADDITIONAL_CPT', 'additional-props' );
add_filter( 'jet-booking/settings/get/apartment_post_type', function ( $post_type ) {
if ( is_admin() ) {
if ( ! empty( $_GET['post_type'] ) && BOOKING_ADDITIONAL_CPT === $_GET['post_type'] ) {
$post_type = BOOKING_ADDITIONAL_CPT;
}
@MjHead
MjHead / jet-booking-inherit-guests-filter-in-form.php
Last active January 17, 2024 14:27
JetBooking. Connect Guests number filter to Guests field in the form.
<?php
/**
* Instructions:
*
* 1. Create a filter for guests number - https://tppr.me/H7Sjzs, https://tppr.me/D5jImO
* 2. In the example below used 'max_guests' query variable for filter, you need replace it with your own.
* You need to do this under 'Replace this with your filter variable' comment
* 3. After this - each time when this filter applied - selected value will be stored, now you need to apply it in form
* 4. Set this value as default for Guessts field in the form - https://tppr.me/vwdRCV.
* 5. For the form keep the query var name from example - _booking_guests_num - here will be stored selected filter value
@MjHead
MjHead / form.json
Last active September 4, 2024 11:21
Allow provider to add services for itself. You need to download these files. form.json you need to import with JetFormBuilder. snippet.json - with code snippets plugin
{"post_title":"Apply to service","post_content":"<!-- wp:jet-forms\/hidden-field {\"name\":\"provider_id\"} \/-->\n\n<!-- wp:jet-forms\/select-field {\"field_options_from\":\"posts\",\"field_options_post_type\":\"services\",\"name\":\"service_id\"} \/-->\n\n<!-- wp:jet-forms\/submit-field \/-->","meta_input":{"_gspb_post_css":"","_jf_actions":"[{\"id\":3775,\"settings\":{\"send_email\":{\"subject\":\"New order on website\",\"content\":\"Hi admin!\\n\\nThere are new order on your website.\\n\\nOrder details:\\n- Post ID: %post_id%\"},\"call_hook\":{\"hook_name\":\"apply-to-service\"}},\"type\":\"call_hook\",\"conditions\":[],\"events\":[]}]"}}
@MjHead
MjHead / jet-theme-core-change-template.php
Created June 2, 2023 07:51
Change template for JetThemeCore plugin based on the option value.
<?php
add_filter( 'jet-theme-core/location/render/template-id', function( $template_id ) {
/**
* 123 - is ID of initial template you set in ThemeCore (could be found in adress bar)
* 'alternate-value' - is value of option which enables alternative layout for this page
* page-slug and option-name - there are option page slug and option name itself which are responsible for layout
*/
if ( 123 === $template_id && 'alternate-value' === jet_engine()->listings->data->get_option( 'page-slug::option-name' ) ) {
<?php
add_filter( 'jet-form-builder/form-handler/form-data', function( $request ) {
if ( isset( $request['field_name_to_sanitize'] ) ) {
$request['field_name_to_sanitize'] = wp_strip_all_tags( $request['field_name_to_sanitize'] );
}
return $request;
} );
@MjHead
MjHead / rest-api-terms-with-labels.php
Last active September 5, 2024 12:00
WordPress Rest API. Add post terms with labels to API response
<?php
/**
* Add this code without opening PHP tag into funcitons.php og your active theme or with any code snippets plugin
*/
add_action(
'rest_api_init',
function() {
/**
* Here you can set taxonomies slugs you wnat to add to Rest API response