effective_learndash 0.1.4 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +10 -10
- data/app/controllers/admin/learndash_courses_controller.rb +1 -1
- data/app/datatables/admin/effective_learndash_courses_datatable.rb +1 -1
- data/app/datatables/admin/effective_learndash_users_datatable.rb +1 -1
- data/app/datatables/effective_course_registrations_datatable.rb +4 -4
- data/app/datatables/effective_learndash_courses_datatable.rb +5 -3
- data/app/datatables/effective_learndash_enrollments_datatable.rb +5 -5
- data/app/models/concerns/effective_learndash_course_registration.rb +8 -3
- data/app/models/effective/learndash_api.rb +5 -5
- data/app/views/admin/learndash_courses/_form.html.haml +1 -1
- data/app/views/admin/learndash_courses/_learndash_course.html.haml +3 -3
- data/app/views/admin/learndash_owners/_form.html.haml +1 -1
- data/app/views/admin/learndash_users/_form.html.haml +1 -1
- data/app/views/admin/learndash_users/_learndash_user.html.haml +4 -4
- data/app/views/effective/course_registrations/_summary.html.haml +11 -7
- data/app/views/effective/course_registrations/course.html.haml +2 -3
- data/app/views/effective/course_registrations/start.html.haml +7 -6
- data/app/views/effective/course_registrations/submitted.html.haml +0 -1
- data/app/views/effective/learndash/_dashboard.html.haml +13 -15
- data/app/views/effective/learndash_courses/_learndash_course.html.haml +1 -1
- data/config/routes.rb +1 -1
- data/lib/effective_learndash/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 43df5441a08d0a4f6974c1833c3967e007f0b84d29bb0211a574b9b5803ecf6e
|
|
4
|
+
data.tar.gz: '019f88430901977c58b6ae5a2266aa9b27a548689d1d14aa78926ec32639f582'
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ebb0420d408114b919048393146dc0fbfb25c66f635672e8da07beef5847f78388e11cc08b243299db4ef132cd220025ba945715b83e87440e957b37f9ed71f2
|
|
7
|
+
data.tar.gz: dc6af37f79445a95ebed1e4501be634ec795d5e1f7ca09e997087e25a0aa95cb8d392a892cd51207998d2ea0d2c30ba885fc8865364860fee0d9260d70cdcb32
|
data/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Effective
|
|
1
|
+
# Effective LearnDash
|
|
2
2
|
|
|
3
|
-
Create Wordpress users and read
|
|
3
|
+
Create Wordpress users and read LearnDash course progress. This is an unofficial integration that is not supported or affiliated with WordPress or LearnDash.
|
|
4
4
|
|
|
5
5
|
## Getting Started
|
|
6
6
|
|
|
@@ -91,29 +91,29 @@ if user.admin?
|
|
|
91
91
|
end
|
|
92
92
|
```
|
|
93
93
|
|
|
94
|
-
## Configuring
|
|
94
|
+
## Configuring LearnDash
|
|
95
95
|
|
|
96
|
-
Your
|
|
96
|
+
Your WordPress should be configured ahead of time with the LearnDash plugin.
|
|
97
97
|
|
|
98
98
|
Please generate an application password via:
|
|
99
99
|
|
|
100
100
|
https://make.wordpress.org/core/2020/11/05/application-passwords-integration-guide/
|
|
101
101
|
|
|
102
|
-
and fill in the username/password details in config/initializers/
|
|
102
|
+
and fill in the username/password details in config/initializers/effective_learndash.rb
|
|
103
103
|
|
|
104
|
-
## Working with
|
|
104
|
+
## Working with LearnDash
|
|
105
105
|
|
|
106
106
|
Visit `/admin/learndash_courses` and Refresh the list of Courses.
|
|
107
107
|
|
|
108
|
-
Create a New
|
|
108
|
+
Create a New LearnDash User will create a new WordPress/LearnDash account with a username/password according to the settings in the config file.
|
|
109
109
|
|
|
110
110
|
When you create a user, you only get access to the password once. So any existing users will have an unknown password.
|
|
111
111
|
|
|
112
|
-
Create a new
|
|
112
|
+
Create a new LearnDash Enrollment to enroll a LearnDash user into a course. This will begin tracking their progress.
|
|
113
113
|
|
|
114
|
-
There are no webhooks or callbacks from
|
|
114
|
+
There are no webhooks or callbacks from LearnDash, everything is a GET request that updates the local database.
|
|
115
115
|
|
|
116
|
-
You can refresh an entire
|
|
116
|
+
You can refresh an entire LearnDash user in one operation and it will sync the entire user at once, `user.learndash_user.refresh!`
|
|
117
117
|
|
|
118
118
|
## License
|
|
119
119
|
|
|
@@ -7,7 +7,7 @@ module Admin
|
|
|
7
7
|
|
|
8
8
|
def refresh
|
|
9
9
|
resource_scope.refresh!
|
|
10
|
-
flash[:success] = "Successfully refreshed Courses from
|
|
10
|
+
flash[:success] = "Successfully refreshed Courses from LearnDash"
|
|
11
11
|
redirect_to effective_learndash.admin_learndash_courses_path
|
|
12
12
|
end
|
|
13
13
|
|
|
@@ -2,7 +2,7 @@ module Admin
|
|
|
2
2
|
class EffectiveLearndashUsersDatatable < Effective::Datatable
|
|
3
3
|
datatable do
|
|
4
4
|
col :id, visible: false
|
|
5
|
-
col :user_id, label: '
|
|
5
|
+
col :user_id, label: 'LearnDash Id', visible: false
|
|
6
6
|
|
|
7
7
|
col :last_refreshed, visible: true do |user|
|
|
8
8
|
time_ago_in_words(user.last_synced_at) + ' ago'
|
|
@@ -6,12 +6,12 @@ class EffectiveCourseRegistrationsDatatable < Effective::Datatable
|
|
|
6
6
|
col :token, visible: false
|
|
7
7
|
col :created_at, visible: false
|
|
8
8
|
|
|
9
|
-
col
|
|
10
|
-
registration.
|
|
9
|
+
col :learndash_course, label: 'Title', search: :string do |registration|
|
|
10
|
+
registration.learndash_course.to_s
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
col
|
|
14
|
-
registration.
|
|
13
|
+
col(:submitted_at, label: 'Registered on') do |registration|
|
|
14
|
+
registration.submitted_at&.strftime('%F') || 'Incomplete'
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
col :owner, visible: false, search: :string
|
|
@@ -10,12 +10,14 @@ class EffectiveLearndashCoursesDatatable < Effective::Datatable
|
|
|
10
10
|
order :title
|
|
11
11
|
col :id, visible: false
|
|
12
12
|
|
|
13
|
-
col :title
|
|
14
|
-
|
|
13
|
+
col :title do |learndash_course|
|
|
14
|
+
learndash_course.to_s
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
actions_col show: false do |learndash_course|
|
|
18
|
-
if learndash_course.
|
|
18
|
+
if current_user.learndash_enrollment(course: learndash_course).present?
|
|
19
|
+
'Registered. Please access from the home dashboard or applicant wizard.'
|
|
20
|
+
elsif learndash_course.can_register?
|
|
19
21
|
dropdown_link_to('Register', effective_learndash.new_learndash_course_course_registration_path(learndash_course))
|
|
20
22
|
end
|
|
21
23
|
end
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# Dashboard LearndashUsers
|
|
2
2
|
class EffectiveLearndashEnrollmentsDatatable < Effective::Datatable
|
|
3
3
|
datatable do
|
|
4
|
-
col :learndash_course do |enrollment|
|
|
5
|
-
|
|
4
|
+
col :learndash_course, label: 'Title' do |enrollment|
|
|
5
|
+
enrollment.learndash_course.to_s
|
|
6
6
|
end
|
|
7
7
|
|
|
8
|
-
col :progress_status
|
|
8
|
+
col :progress_status, label: 'Status'
|
|
9
9
|
|
|
10
10
|
col :last_step, visible: false
|
|
11
11
|
col :steps_completed, visible: false
|
|
@@ -16,9 +16,9 @@ class EffectiveLearndashEnrollmentsDatatable < Effective::Datatable
|
|
|
16
16
|
|
|
17
17
|
actions_col(show: false) do |enrollment|
|
|
18
18
|
if enrollment.not_started?
|
|
19
|
-
dropdown_link_to('
|
|
19
|
+
dropdown_link_to('Access Course', EffectiveLearndash.learndash_url, target: '_blank')
|
|
20
20
|
elsif enrollment.in_progress?
|
|
21
|
-
dropdown_link_to('Continue', EffectiveLearndash.learndash_url, target: '_blank')
|
|
21
|
+
dropdown_link_to('Continue Course', EffectiveLearndash.learndash_url, target: '_blank')
|
|
22
22
|
else
|
|
23
23
|
dropdown_link_to('Show', EffectiveLearndash.learndash_url, target: '_blank')
|
|
24
24
|
end
|
|
@@ -127,11 +127,16 @@ module EffectiveLearndashCourseRegistration
|
|
|
127
127
|
learndash_owner.membership_present?
|
|
128
128
|
end
|
|
129
129
|
|
|
130
|
-
def
|
|
131
|
-
|
|
130
|
+
def registration_price
|
|
131
|
+
raise('expected a learndash course') unless learndash_course.present?
|
|
132
|
+
raise('expected a learndash owner') unless learndash_owner.present?
|
|
132
133
|
|
|
134
|
+
member_pricing? ? learndash_course.member_price : learndash_course.regular_price
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
def assign_pricing
|
|
133
138
|
course_registrant.assign_attributes(
|
|
134
|
-
price:
|
|
139
|
+
price: registration_price,
|
|
135
140
|
qb_item_name: learndash_course.qb_item_name,
|
|
136
141
|
tax_exempt: learndash_course.tax_exempt
|
|
137
142
|
)
|
|
@@ -146,7 +146,7 @@ module Effective
|
|
|
146
146
|
end
|
|
147
147
|
|
|
148
148
|
def username_for(resource)
|
|
149
|
-
raise('expected a
|
|
149
|
+
raise('expected a LearnDash owner') unless resource.class.respond_to?(:effective_learndash_owner?) # This is a user
|
|
150
150
|
|
|
151
151
|
name = EffectiveLearndash.wp_username_for(resource)
|
|
152
152
|
name = "test#{name}" unless Rails.env.production?
|
|
@@ -154,7 +154,7 @@ module Effective
|
|
|
154
154
|
end
|
|
155
155
|
|
|
156
156
|
def email_for(resource)
|
|
157
|
-
raise('expected a
|
|
157
|
+
raise('expected a LearnDash owner') unless resource.class.respond_to?(:effective_learndash_owner?) # This is a user
|
|
158
158
|
|
|
159
159
|
email = resource.email
|
|
160
160
|
email = "test#{email}" unless Rails.env.production?
|
|
@@ -162,7 +162,7 @@ module Effective
|
|
|
162
162
|
end
|
|
163
163
|
|
|
164
164
|
def password_for(resource)
|
|
165
|
-
raise('expected a
|
|
165
|
+
raise('expected a LearnDash owner') unless resource.class.respond_to?(:effective_learndash_owner?) # This is a user
|
|
166
166
|
EffectiveLearndash.wp_password_for(resource)
|
|
167
167
|
end
|
|
168
168
|
|
|
@@ -178,7 +178,7 @@ module Effective
|
|
|
178
178
|
elsif response.kind_of?(Array)
|
|
179
179
|
response.first
|
|
180
180
|
else
|
|
181
|
-
raise("unexpected
|
|
181
|
+
raise("unexpected LearnDash API response #{response}")
|
|
182
182
|
end
|
|
183
183
|
end
|
|
184
184
|
|
|
@@ -199,7 +199,7 @@ module Effective
|
|
|
199
199
|
elsif response.kind_of?(Array)
|
|
200
200
|
response
|
|
201
201
|
else
|
|
202
|
-
raise("unexpected
|
|
202
|
+
raise("unexpected LearnDash API find_by response #{response}")
|
|
203
203
|
end
|
|
204
204
|
)
|
|
205
205
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
= tab 'Enrollments' do
|
|
7
7
|
%h2 Enrollments
|
|
8
8
|
%p Click the New button from the below table to enroll a user into this course.
|
|
9
|
-
%p Enrolling a user here will enroll them on the
|
|
9
|
+
%p Enrolling a user here will enroll them on the LearnDash site.
|
|
10
10
|
%p Alternately, if this course is available for registration, the enrollment will be created upon registration purchase.
|
|
11
11
|
|
|
12
12
|
- datatable = Admin::EffectiveLearndashEnrollmentsDatatable.new(learndash_course: learndash_course)
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
= card('
|
|
1
|
+
= card('LearnDash Course') do
|
|
2
2
|
%p= learndash_course.title
|
|
3
3
|
%p= link_to(learndash_course.link, learndash_course.link, target: '_blank')
|
|
4
4
|
|
|
5
|
-
%p= link_to "
|
|
5
|
+
%p= link_to "LearnDash LMS Course Admin", EffectiveLearndash.learndash_url.chomp('/') + "/wp-admin/post.php?post=#{learndash_course.course_id}}&action=edit", target: '_blank'
|
|
6
6
|
|
|
7
|
-
%h3
|
|
7
|
+
%h3 LearnDash User Enrollments
|
|
8
8
|
|
|
9
9
|
%p Click the New button from the below table to enroll a user into this course.
|
|
10
10
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
- if owner.learndash_user.blank?
|
|
2
|
-
%p #{owner} does not yet have an account on
|
|
2
|
+
%p #{owner} does not yet have an account on LearnDash.
|
|
3
3
|
|
|
4
4
|
- if owner.learndash_user.present?
|
|
5
5
|
= render('admin/learndash_users/learndash_user', learndash_user: owner.learndash_user)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
= effective_form_with(model: [:admin, learndash_user], engine: true) do |f|
|
|
2
2
|
|
|
3
3
|
= f.select :owner, {'Owners' => current_user.class.sorted }, polymorphic: true,
|
|
4
|
-
hint: 'Create a
|
|
4
|
+
hint: 'Create a LearnDash account for this user'
|
|
5
5
|
|
|
6
6
|
= f.submit
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
= card('
|
|
1
|
+
= card('LearnDash') do
|
|
2
2
|
%p
|
|
3
3
|
= link_to(learndash_user.owner, "/admin/users/#{learndash_user.owner.to_param}/edit")
|
|
4
|
-
has an existing account on
|
|
4
|
+
has an existing account on LearnDash.
|
|
5
5
|
|
|
6
6
|
%ul
|
|
7
7
|
%li Email: #{learndash_user.email}
|
|
8
8
|
%li Username: #{learndash_user.username}
|
|
9
9
|
%li Password: #{learndash_user.password}
|
|
10
10
|
|
|
11
|
-
%p= link_to "
|
|
11
|
+
%p= link_to "LearnDash LMS User Admin", EffectiveLearndash.learndash_url.chomp('/') + "/wp-admin/user-edit.php?user_id=#{learndash_user.user_id}", target: '_blank'
|
|
12
12
|
|
|
13
13
|
%p
|
|
14
14
|
%small Last refreshed #{time_ago_in_words(learndash_user.last_synced_at)} ago.
|
|
15
15
|
|
|
16
|
-
%h3
|
|
16
|
+
%h3 LearnDash Course Enrollments
|
|
17
17
|
|
|
18
18
|
%p Click the New button from the below table to manually enroll this user into a new course.
|
|
19
19
|
|
|
@@ -2,19 +2,23 @@
|
|
|
2
2
|
%table.table.table-sm
|
|
3
3
|
%tbody
|
|
4
4
|
%tr
|
|
5
|
-
%th.border-0
|
|
5
|
+
%th.border-0 Course
|
|
6
6
|
%td.border-0
|
|
7
|
-
%p
|
|
7
|
+
%p
|
|
8
|
+
%strong=course_registration.course
|
|
8
9
|
|
|
9
|
-
%p Please sign into Learndash with the following credentials:
|
|
10
10
|
- learndash_user = course_registration.learndash_owner.learndash_user
|
|
11
|
+
%p Your course account credentials are:
|
|
11
12
|
|
|
12
13
|
%ul
|
|
13
|
-
%li
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
%li
|
|
15
|
+
%strong Username:
|
|
16
|
+
#{learndash_user.username}
|
|
17
|
+
%li
|
|
18
|
+
%strong Password:
|
|
19
|
+
#{learndash_user.password}
|
|
16
20
|
|
|
17
|
-
%p= link_to('
|
|
21
|
+
%p= link_to('Sign in to your course account', EffectiveLearndash.learndash_url, target: '_blank', class: 'btn btn-primary mb-2')
|
|
18
22
|
|
|
19
23
|
- if request.path.start_with?('/admin')
|
|
20
24
|
%tr
|
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
= render 'effective/course_registrations/content', resource: resource
|
|
3
3
|
|
|
4
4
|
= card('Course') do
|
|
5
|
-
=
|
|
6
|
-
|
|
7
|
-
%p You qualify for #{resource.member_pricing? ? 'member' : 'regular'} pricing.
|
|
5
|
+
%p= resource.learndash_course
|
|
6
|
+
%p= price_to_currency(resource.registration_price)
|
|
8
7
|
|
|
9
8
|
= effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
|
|
10
9
|
= f.hidden_field :id
|
|
@@ -13,12 +13,13 @@
|
|
|
13
13
|
.alert.alert-warning
|
|
14
14
|
You are already enrolled in #{link_to(resource.course, EffectiveLearndash.learndash_url, target: '_blank')}.
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
=
|
|
16
|
+
- if existing.blank?
|
|
17
|
+
= effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
|
|
18
|
+
= f.hidden_field :id
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
= f.hidden_field :learndash_course_id
|
|
20
21
|
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
= f.hidden_field :owner_type
|
|
23
|
+
= f.hidden_field :owner_id
|
|
23
24
|
|
|
24
|
-
|
|
25
|
+
= f.save 'Save and Continue'
|
|
@@ -10,7 +10,6 @@
|
|
|
10
10
|
= link_to "Return to Dashboard", root_path, class: 'btn btn-lg btn-primary mb-4'
|
|
11
11
|
|
|
12
12
|
= render 'effective/course_registrations/summary', course_registration: resource
|
|
13
|
-
= render 'effective/course_registrations/course_registration', course_registration: resource
|
|
14
13
|
= render 'effective/course_registrations/orders', course_registration: resource
|
|
15
14
|
|
|
16
15
|
= link_to "Return to Dashboard", root_path, class: 'btn btn-lg btn-primary'
|
|
@@ -1,31 +1,29 @@
|
|
|
1
1
|
- learndash_user = current_user.try(:learndash_user)
|
|
2
2
|
- authorized = learndash_user && EffectiveResources.authorized?(self, :show, learndash_user)
|
|
3
3
|
|
|
4
|
-
%h2
|
|
4
|
+
%h2 Courses
|
|
5
5
|
|
|
6
6
|
- if learndash_user.blank?
|
|
7
|
-
%p You do not have a
|
|
8
|
-
|
|
9
|
-
- if learndash_user.present?
|
|
10
|
-
%p
|
|
11
|
-
= succeed('.') do
|
|
12
|
-
You have an existing account on
|
|
13
|
-
= link_to('Learndash', EffectiveLearndash.learndash_url, target: '_blank')
|
|
7
|
+
%p You do not have an account to access courses. When you are enrolled in a course, your account credentials will be displayed here.
|
|
14
8
|
|
|
15
9
|
- if learndash_user.present? && authorized
|
|
16
10
|
- learndash_user.refresh!
|
|
17
11
|
|
|
18
|
-
%p
|
|
12
|
+
%p Your course account credentials are:
|
|
19
13
|
|
|
20
14
|
%ul
|
|
21
|
-
%li
|
|
22
|
-
|
|
23
|
-
|
|
15
|
+
%li
|
|
16
|
+
%strong Username:
|
|
17
|
+
#{learndash_user.username}
|
|
18
|
+
%li
|
|
19
|
+
%strong Password:
|
|
20
|
+
#{learndash_user.password}
|
|
24
21
|
|
|
25
|
-
|
|
26
|
-
%p You are enrolled in #{pluralize(learndash_user.learndash_enrollments.length, 'course')}.
|
|
22
|
+
%p= link_to('Sign in to your course account', EffectiveLearndash.learndash_url, target: '_blank', class: 'btn btn-primary')
|
|
27
23
|
|
|
24
|
+
- if learndash_user.learndash_enrollments.present?
|
|
28
25
|
- datatable = EffectiveResources.best('EffectiveLearndashEnrollmentsDatatable').new(self)
|
|
29
26
|
= render_datatable(datatable, simple: true)
|
|
27
|
+
|
|
30
28
|
- else
|
|
31
|
-
You are not enrolled in any
|
|
29
|
+
%p You are not enrolled in any courses.
|
data/config/routes.rb
CHANGED
|
@@ -7,7 +7,7 @@ end
|
|
|
7
7
|
EffectiveLearndash::Engine.routes.draw do
|
|
8
8
|
# Public routes
|
|
9
9
|
scope module: 'effective' do
|
|
10
|
-
resources :learndash_courses, only: [:index
|
|
10
|
+
resources :learndash_courses, only: [:index] do
|
|
11
11
|
resources :course_registrations, only: [:new, :show, :destroy] do
|
|
12
12
|
resources :build, controller: :course_registrations, only: [:show, :update]
|
|
13
13
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: effective_learndash
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Code and Effect
|
|
@@ -164,7 +164,7 @@ dependencies:
|
|
|
164
164
|
- - ">="
|
|
165
165
|
- !ruby/object:Gem::Version
|
|
166
166
|
version: '0'
|
|
167
|
-
description: Create Wordpress users and read
|
|
167
|
+
description: Create Wordpress users and read LearnDash course progress
|
|
168
168
|
email:
|
|
169
169
|
- info@codeandeffect.com
|
|
170
170
|
executables: []
|
|
@@ -259,5 +259,5 @@ requirements: []
|
|
|
259
259
|
rubygems_version: 3.1.2
|
|
260
260
|
signing_key:
|
|
261
261
|
specification_version: 4
|
|
262
|
-
summary: Create Wordpress users and read
|
|
262
|
+
summary: Create Wordpress users and read LearnDash course progress
|
|
263
263
|
test_files: []
|